4
我可以从UINavigationController
的堆栈通过调用[self.navigationController popViewControllerAnimated:YES];
从实例化它的父视图控制器或从子视图控制器本身弹出视图控制器。哪种方式更可取?应该从父或子ViewController调用popViewController吗?
我可以从UINavigationController
的堆栈通过调用[self.navigationController popViewControllerAnimated:YES];
从实例化它的父视图控制器或从子视图控制器本身弹出视图控制器。哪种方式更可取?应该从父或子ViewController调用popViewController吗?
我想答案是“无论什么最有意义”;正如你所说的,你可以从父母,孩子甚至其他一些拥有对导航控制器的引用的课程中调用popViewControllerAnimated:
。
对于大多数应用程序,子视图将包含一个“后退”或“完成”按钮或一些其他操作,然后导致它被弹出。一般来说,我会说这是更好的行为:子视图控制器弹出自己。
否则,孩子将不得不通过代理或其他方式呼叫父母说“流行!”。然后再拨打popViewControllerAnimated:
。这对于这样一个简单的行为来说感觉有点过于复杂。
这取决于你正在提供什么样的“返回”按钮,带有左箭头的按钮来自父视图控制器。 – 2012-04-05 02:42:49
在我的例子中,我* *在父对象上调用一个委托方法,因为父对象是一个tableview“form”,而我的孩子是一个tableview来浏览,搜索并从父对象的字段的可能值列表中进行选择形成。所以我可以从两方面看出它是有意义的,尽管我的直觉说要在孩子身上这样做,因为这是用户行为发生的地方(选择一个选择)应该关闭视图。 – 2012-04-05 09:25:54
+1。我的直觉还表示,如果行动是在儿童视角,那么流行的呼声也应该在那里。 – gregheo 2012-04-05 23:08:13