1

正如标题所述,我正在使用 iOS5 功能故事板。我有一个文本字段,点击时应显示模态视图(带选择器)。我想知道这个动作可以使用 segues 触发吗?

当您有按钮或单元格时,您只需按住 ctrl 拖动即可查看要呈现的控制器。我对文本字段做了同样的事情,但没有可见的结果。我只是按下它,只有键盘弹出。没有显示模态视图。我应该怎么办?

4

2 回答 2

7

对您的问题有一些想法,希望对您有所帮助:

  • 如果你viewController采用UITextFieldDelegate,那么你可以实现可选的委托方法textFieldDidBeginEditing:,并在成为第一响应者时得到通知textField并做你想做的事情,例如呈现一个模式视图控制器(UITextFieldDelegate 协议参考)。但是,当textField成为第一响应者并且键盘弹出时,同时您也会弹出一个模态视图,这听起来不太友好。

  • 如果用户只有有限的选择可供选择,为什么要使用textField?

  • 另一种选择可能是实施textFieldShouldBeginEditing:(同样,您需要采用UITextFieldDelegate)。根据苹果,

当用户执行通常会启动编辑会话的操作时,文本字段首先调用此方法以查看是否应该实际进行编辑。在大多数情况下,您只需从此方法返回 YES 即可继续进行编辑。

您将return NO不会弹出键盘,而是弹出模态视图控制器。您可以通过首先调用presentViewController:animated:completion:然后返回 NO(UIViewController 类参考)来做到这一点——我没有对此进行测试,但听起来它应该可以工作。

  • 我不是百分百确定。我想我在某处听到segue故事板中的 s 被调用- 认为(我可能错了),但如果这是真的,当成为第一响应者时,那不是控制事件,因此不会工作.UIControlEventUIControlEventTouchUpInsideUIButtonUITextFieldsegue
于 2012-05-10T17:28:47.170 回答
0

Weeel,textFieldShouldBeginEditing:方法在 ios8 上运行良好

但是它在 ios7 上不能始终如一地工作

我已结束设置 textfield.enabled = NO 并用透明 uibutton 覆盖 uitextfield 以触发 VC 演示

于 2014-12-24T16:13:52.257 回答