【问题标题】:View controller being dismissed on tap视图控制器在点击时被关闭
【发布时间】:2013-03-05 07:11:07
【问题描述】:

我有一个登录视图控制器,其中包含用户名和密码文本字段、登录按钮、注册按钮和 UIImageView 以显示图像。在纵向模式下,当我点击用户名和密码字段时,它会显示键盘,我可以输入文本。但是当我的应用程序处于横向模式时,我遇到了这个问题。当我点击用户名字段输入文本时,视图控制器被关闭。我的编码方式是,当我点击背景时,视图控制器会被关闭,但现在,即使我点击视图控制器,它也会被关闭。但这在纵向模式下效果很好。这是我的代码。

【问题讨论】:

    标签: objective-c uiviewcontroller


    【解决方案1】:

    不要将手势直接添加到您的视图中。视图中的所有其他内容(您的按钮、文本字段等)也是您视图的一部分。您需要将手势添加到这些子视图的同级。

    不是:

    -- View                <--- gesture added to this view
    ---- Textfield
    ---- Button
    

    但是:

    -- View
    ---- BackgroundView   <--- gesture added to this view
    ---- Textfield
    ---- Button
    

    或者:

    -- View
    ---- BackgroundView   <--- gesture added to this view
    ---- Containerview
    ------ Textfield
    ------ Button
    
    1. 创建一个子视图并将其作为背景视图添加到控制器中
    2. 将手势添加到此背景视图

    【讨论】:

    • 很抱歉,您所说的一切都超出了我的想象。你能详细解释一下吗?如果它在纵向模式下工作正常,那我为什么要在横向模式下面对它?你能解释一下这个原因吗?谢谢。
    • 嗯.. 现在您将子视图添加到控制器的视图中,对吧?该视图还包含您的文本字段对吗?尝试将其添加到不包含这些元素但仅位于这些元素下方的不同视图中。我不能确定为什么这个问题只发生在风景中。这是你所有的代码吗?您是否在其他地方覆盖了布局子视图?顺便说一句,你为什么要删除 self.view 而不是 -backgroundTapped 中的整个控制器?为什么不直接显示和关闭模态视图控制器:goo.gl/4JTLG
    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2011-04-29
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多