【问题标题】:iPhone Presenting modal view from UITextField using segues?iPhone使用segues从UITextField呈现模态视图?
【发布时间】:2012-05-10 13:57:45
【问题描述】:

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

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

【问题讨论】:

    标签: iphone uitextfield presentmodalviewcontroller uistoryboardsegue


    【解决方案1】:

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

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

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

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

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

    您将return NO 使键盘不会弹出,而是弹出您的模态视图控制器。为此,您首先调用 presentViewController:animated:completion:,然后返回 NO (UIViewController Class Reference)——我还没有测试过,但听起来应该可以。

    • 我不是 100% 确定。我想我在某处听说故事板中的segues 被调用UIControlEvent 等效于UIControlEventTouchUpInside——想想UIButton(我可能错了),但如果这是真的,当UITextField 成为第一个时响应者,这不是控制事件,因此segue 将不起作用。

    【讨论】:

      【解决方案2】:

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

      但它在 ios7 上无法始终如一地工作

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 2014-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多