ビューコントローラーにセグエするログインコントローラーを持つiPadアプリに取り組んでいます。ログイン コントローラは次のように宣言されます。
@interface LoginController : UIViewController <UITextFieldDelegate>
ストーリーボードには(予想どおり)、ユーザー名とパスワードのテキストフィールドと、認証とメインアプリへのログイン用のボタンがあります。ボタンは shouldPerformSegueWithIdentifier(...) 関数を呼び出し、ビューはログイン ビューからメイン ビューに切り替わります。
ユーザーがパスワードテキストボックスでリターンを押したときに、これをプログラムで模倣したいと思います。イベントをトラップしましたが、スイッチオーバーが発生しないようです。私が使用しているコードは次のとおりです。
if (theTextField == self.password)
{
BOOL loginSuccessful = [self shouldPerformSegueWithIdentifier:@"switchToViewer" sender:self];
if (loginSuccessful == YES)
{
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"I should be dismissing here!\n");
}];
}
}
ただし、ビューが却下されることはありません。これは iOS 7 上にあることに注意してください。それが重要かどうかはわかりません。何か案は?
編集:今のところ私の回避策は、ボタンタッチイベントを偽装することです:
[self.signIn sendActionsForControlEvents: UIControlEventTouchUpInside];
ハッキーですが、動作します:)