Swift View控制器和导航控制器

时间:2015-08-21 19:12:48

标签: swift

添加ViewController时,是否应始终添加导航控制器?使用导航控制器有什么好处?

我知道导航控制器会给你一个后退按钮但可以使用导航栏完成并添加你自己的后退按钮。

现在从屏幕到屏幕看起来似乎要复杂得多:

要设置另一个视图代码:

performSegueWithIdentifier("LoginViewSegue", sender: self)

导航到另一个视图:

let loginController = storyboard?.instantiateViewControllerWithIdentifier("LoginView") as! LoginViewController

self.presentViewController(loginController, animated: true, completion: nil)

我知道seque代码只是一个衬垫,而另一个是两个衬垫。但这似乎没什么大不了的。我知道你在seque上得到了你可以使用的辅助课程。就像在实际调用seque之前执行的prepareForSegue一样。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)

但是在调用视图之前调用视图控制器只需运行预编码就可以了。

这只是一种风格问题,还是一方面有好处呢?

1 个答案:

答案 0 :(得分:0)

  

这只是一种风格问题

您似乎在询问两个不同的事情:一方面是导航控制器与呈现的视图控制器,另一方面是代码与故事板。

导航控制器与呈现的控制器

这是视图控制器与视图行为之间关系的问题。

  • 导航控制器(推送和弹出)是关于拥有一个堆栈的视图控制器。导航控制器通过导航栏和工具栏提供自己的视图,您可以自动获得导航栏的整个数量以及后退按钮。您的视图控制器是导航控制器的子级,视图控制器的视图位于该界面内。

  • 呈现的视图控制器(存在和关闭)是关于替换呈现它的视图控制器。视图控制器处于呈现和呈现的视图控制器(不是父子关系)的关系中。后者的观点涵盖(部分或全部)或取代前者的观点。

这些并不是唯一的选择。标签栏控制器和页面视图控制器是其他内置父视图控制器的可能性。您可以编写自己的自定义父视图控制器。使用对您的应用程序架构有意义的内容。 Apple正在尝试提供一种标准词汇表,帮助您轻松编写应用程序,并帮助用户了解我们的位置和目的地(以及我们来自哪里),因为视图来来去去。

代码与故事板

你可以在故事板中用纯代码做的任何事情。这完全取决于你。