正如标题所述,我正在使用 iOS5 功能故事板。我有一个文本字段,点击时应显示模态视图(带选择器)。我想知道这个动作可以使用 segues 触发吗?
当您有按钮或单元格时,您只需按住 ctrl 拖动即可查看要呈现的控制器。我对文本字段做了同样的事情,但没有可见的结果。我只是按下它,只有键盘弹出。没有显示模态视图。我应该怎么办?
正如标题所述,我正在使用 iOS5 功能故事板。我有一个文本字段,点击时应显示模态视图(带选择器)。我想知道这个动作可以使用 segues 触发吗?
当您有按钮或单元格时,您只需按住 ctrl 拖动即可查看要呈现的控制器。我对文本字段做了同样的事情,但没有可见的结果。我只是按下它,只有键盘弹出。没有显示模态视图。我应该怎么办?
对您的问题有一些想法,希望对您有所帮助:
如果你viewController
采用UITextFieldDelegate
,那么你可以实现可选的委托方法textFieldDidBeginEditing:
,并在成为第一响应者时得到通知textField
并做你想做的事情,例如呈现一个模式视图控制器(UITextFieldDelegate 协议参考)。但是,当textField
成为第一响应者并且键盘弹出时,同时您也会弹出一个模态视图,这听起来不太友好。
如果用户只有有限的选择可供选择,为什么要使用textField
?
另一种选择可能是实施textFieldShouldBeginEditing:
(同样,您需要采用UITextFieldDelegate
)。根据苹果,
当用户执行通常会启动编辑会话的操作时,文本字段首先调用此方法以查看是否应该实际进行编辑。在大多数情况下,您只需从此方法返回 YES 即可继续进行编辑。
您将return NO
不会弹出键盘,而是弹出模态视图控制器。您可以通过首先调用presentViewController:animated:completion:
然后返回 NO(UIViewController 类参考)来做到这一点——我没有对此进行测试,但听起来它应该可以工作。
segue
故事板中的 s 被调用- 认为(我可能错了),但如果这是真的,当成为第一响应者时,那不是控制事件,因此不会工作.UIControlEvent
UIControlEventTouchUpInside
UIButton
UITextField
segue
Weeel,textFieldShouldBeginEditing:方法在 ios8 上运行良好
但是它在 ios7 上不能始终如一地工作
我已结束设置 textfield.enabled = NO 并用透明 uibutton 覆盖 uitextfield 以触发 VC 演示