案例开发人员更喜欢IOS中的SetViewController是什么?
IOS中的setViewController和PushViewController有什么区别?
请帮帮我
感谢。
答案 0 :(得分:2)
首先它不是SetViewController
,而是setViewControllers
,因为它设置了array of view controller
。
您只能将视图控制器设置为navigation controller
或tabbar controller
,pushviewcontroller
只能navigation controller
而不是tabbar controller
现在让我们理解navigation stack
:
例如,您有一个导航控制器说nav
。
它没有任何对象(视图控制器)。
现在举个例子,你有三个视图控制器的数组,比如A,B & C' and you set that array to you
导航控制器`,
[self.navigationController setViewControllers:viewControllerArr];
然后您的导航堆栈变得像
A -> B -> C (top of stack)
现在你将一个视图控制器推送到同一个导航堆栈,让它说出D
之类的东西,
[self.navigationController pushViewController:D animated:YES];
然后你的导航堆就像了,
A -> B -> C -> D (top of stack)
现在,如果你弹出一个类似的视图控制器,
[self.navigationController popViewControllerAnimated:YES];
然后它弹出堆栈顶部,然后你的堆栈看起来像,
`A -> B -> C (top of stack)`
再次弹出一个,
`A -> B (top of stack)`
因此,set和push视图控制器之间的主要区别在于,当你设置viewcontrollers时,你设置的数组意味着多个数组。所以,我们可以说setViewController
是初始控制器初始化导航控制器(初始化导航堆栈)
push或pop正在向导航堆栈添加或从导航堆栈中删除视图控制器。
希望这会有所帮助:)
答案 1 :(得分:0)
导航控制器用于管理一组视图控制器。您可以一次一个地将控制器“推”到堆栈上(这几乎是您几乎所有的时间),或者您可以一次性“设置”包含多个控制器的堆栈。 Read the manual.