0

画面にUIAlertviewshowを呼び出すクラスを作成します。UIAlert関数を別のクラスで記述します。これら2つのクラスはどちらも私のviewControllerクラスではありません

内部のUITextfieldであるこのUIAlertを使用して、テキストをplistファイルに保存します。

UIAlertを呼び出すクラスは次のとおりです。

#import "Story.h"

@implementation Story

...
+ (void)stage1
{
    AlertClass *pointer = [AlertClass new];
    [pointer doAlert];
}

これがクラスAlertClass.mファイルです:

- (void)doAlert
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Done" otherButtonTitles:nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    [alert show];

}
//this makes crash!
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    self.storyFlow.text = [alertView textFieldAtIndex:0].text;
}

.hにUIAlertViewDelegateを追加し、メソッド「clickedButtonAtIndex」をオーバーライドする前に、これはうまく機能します。ただし、アラートビュー内のUITextfieldからのデータを保存する必要があります。クラッシュし、次のように応答するメッセージがわかりません。

この問題を解決するのを手伝ってください。ありがとう。

[クラッシュ写真] https://dl.dropbox.com/u/47381923/crash.tiff

4

1 に答える 1

0

アラート ビューから返されたテキストに対して NSLog を実行し、それがクラッシュなのか、それとも後続の「self.storyFlow.text = 」が原因なのかを確認します。おそらく、self.storyFlow はまだ作成されていません (alloc/init を使用)

于 2012-09-15T09:26:03.753 に答える