【问题标题】:UINavigationController stack error when UITextField has first responder in modalView当 UITextField 在 modalView 中有第一响应者时,UINavigationController 堆栈错误
【发布时间】:2011-10-10 15:35:44
【问题描述】:

我在 UIViewController 中有一个 UITextField,它被推送到 UINavigationController 堆栈中。 UINavigationController 显示为 modalViewController。

如果文本字段在点击后退按钮时处于第一响应者状态(即键盘已启动),则视图会按应有的方式弹出,但它会导致堆栈中的每个其他视图控制器出现导航栏错误:“后退”按钮导航栏上的文本颜色错误且没有背景图片,标题消失,点击其他自定义导航栏按钮无效。

我已尝试在 viewWillDisappear: 和 viewDidDisappear: 中退出文本字段的第一响应者状态。

【问题讨论】:

  • 我很好奇,这是否只发生在模拟器中但在设备上有效?
  • @chown 它发生在模拟器和设备上。
  • 啊,那我的建议不适用,抱歉=/。

标签: iphone objective-c ios uinavigationcontroller


【解决方案1】:

改用以下方法

在 viewController 中,而不是将 modalViewController '推'到 NavigationController 上,只需调用

[self presentModalViewController:self.myModalViewController animated:YES];

然后,当您想摆脱它时(例如,在视图左上角的按钮中)在 MyModalViewController 中有一个称为例如的操作

- (IBAction)doneAction {
    [self dismissModalViewControllerAnimated:YES];
}

【讨论】:

  • 对不起,我应该澄清一下:viewController 没有作为模态视图控制器推送到导航控制器上。 UINavigationController 被呈现为 modalViewController,并且 viewController 被推送到导航控制器上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多