【问题标题】:seguing from a navigationcontroller stack causes uitextfield and uisearchbar to freeze up从navigationcontroller 堆栈进行seguing 会导致uitextfield 和uisearchbar 冻结
【发布时间】:2013-07-09 15:34:18
【问题描述】:

我有一个非常有趣的情况,我从视图控制器 A 切换到以视图控制器 B 作为其根控制器的导航控制器。当我单击 Viewcontroller B 上的取消按钮时,它有一个 segue 将我带回 viewcontroller A(顺便说一句,它不是导航控制器堆栈的一部分)。但是,一旦我这样做了,A 和 B 上的文本字段和搜索栏就会停止工作。

我已将搜索栏和文本字段的委托设置为视图控制器,并向 shouldbeginEditing 返回 YES。

每次我点击搜索栏时,shouldBeginEditing 函数都会触发,但 didbeginediting 函数永远不会被调用。

我不应该通过 segues 退出导航控制器堆栈吗?

【问题讨论】:

    标签: ios uinavigationcontroller uisearchbar segue


    【解决方案1】:

    不,你不是。您不应该在控制器层次结构(任何类型)中“向后”使用除展开转场之外的任何转场。关于 segue,要记住的最重要的事实是,它们总是创建新的视图控制器(展开除外)。因此,您并没有真正“回到” A,而是创建了一个新实例。

    因此,您应该使用展开转场,或者如果进行模态转场,请使用 dismissViewControllerAnimated:completion: 回到 A。

    【讨论】:

    • 不错的答案。比我快 7 秒哈哈
    • 感谢 Rdelmar!我会试试你的建议。另外,我发现必须在触发 segue 或程序混乱之前退出键盘。我以这种方式修复了我的程序。我还将研究如何创建展开转场。
    猜你喜欢
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2018-02-28
    • 2011-06-19
    • 1970-01-01
    • 2020-12-15
    相关资源
    最近更新 更多