我正在开发一款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];
Hacky,但它有效:)
答案 0 :(得分:4)
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];