0

私は電話しています:

emailDetailView.navigationItem.leftBarButtonItem =
    [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                                  target:self 
                                                  action:@selector(cancel)];

emailDetailView.navigationItem.rightBarButtonItem =
    [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                  target:self
                                                  action:@selector(emailAddressSelected:emailAddressReturned:)];

UINavigationController *emailDetailNavCon = [[UINavigationController alloc] initWithRootViewController:emailDetailView];

[self presentModalViewController:emailDetailNavCon animated:YES] ;

そして、選択されたものとして参照されている私のメソッドは次のとおりです。

-(void) emailAddressSelected:(NSString *)emailAddressSelectedString {
    NSLog(@"emailAddressSelected is %@", emailAddressSelectedString);
    emailAddressReturned = emailAddressSelectedString;
    [self performSelector:@selector(showMailComposeController)];
}

-(void)cancel {
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] 
                                          animated:YES];
}

子ビューのボタン (キャンセルまたは完了) からのコールバックも、期待どおりの動作をしていません。

子モーダル ビューの [キャンセル] ボタンをクリックしてモーダル ビューを閉じ、親ビューを表示する方法を理解しようとしています。

また、子モーダル ビューで [完了] ボタンをクリックしてメソッドを実行する方法を理解しようとしていますemailAddressSelected:(NSString *)emailAddressSelectedString

現在、emailAddressSelected:(NSString *)emailAddressSelectedStringメソッドの呼び出しで「認識されないセレクターがインスタンスに送信されました」というエラーが発生しています。

以前の質問からさまざまなバリエーションを試しましたが、それでもエラーが発生するか、期待するボタン アクションが得られません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

キャンセルセレクターの何が問題なのかわかりませんが、完了セレクターが正しくありません。する必要があります

@selector(emailAddressSelected:)

しかし、そこでは NSString をメソッドに渡しません。あなたの場合はUIBarButtonItemである送信者を渡します。

だからそうあるべき

    -(void) emailAddressSelected:(UIBarButtonItem * )sender
于 2012-09-29T03:59:30.653 に答える