0

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

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

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

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

4

1 回答 1

1

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

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

于 2013-07-09T16:00:32.703 回答