使用UINavigationController和UINavigationBar之间的区别

时间:2016-06-29 14:52:24

标签: ios swift

我最近开始学习ios开发。我通过嵌入它使用UINavigationBar创建了一个项目,因为我需要一个标题栏。但是我可以通过使用对象库中的UINavigationController来实现相同的功能。

我看到的唯一区别是当我使用NavigationController时,当我使用segue时,我得到一个后退按钮。他们之间有什么不同吗?在哪种情况下使用哪一种?

顺便说一句,为什么另一个{{1}}被添加到我的故事板?它的意义是什么?(没有人在我看过的任何视频中解释过它)

谢谢。

2 个答案:

答案 0 :(得分:3)

<form name="myForm"> <input type="text" ng-model="$ctrl.inputText"> <input type="number" ng-model="$ctrl.inputNumber"> </form> 自动处理自己的NavigationController并处理viewControllers的导航堆栈,UINavigationBar有一个委托,您可以用它来了解viewControllerNavigationStack中发生的事情,所以出来

使用NavigationController的代表,您可以在以下情况下收到通知:

  • NavigationController将使用此方法显示一些viewController:

    NavigationController;

  • NavigationController确实显示了一些viewController,使用此方法:

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

您也可以使用- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated; 进入导航堆栈上的特定viewController,或者您可以弹出并推送没有segues的viewController

答案 1 :(得分:2)

UINavigationBar

  

UINavigationBar类提供导航控件   等级内容。这是一个酒吧,通常显示在顶部   屏幕,包含用于在层次结构中导航的按钮   屏幕。主要属性是左(后)按钮,中心   标题和可选的右键。您可以使用导航栏作为   独立对象或与导航控制器结合使用   对象

UINavigationController

  

UINavigationController类实现了一个专门的视图   管理分层内容导航的控制器。这个   导航界面可以显示您的数据   有效地使用户更容易导航该内容。   您通常按原样使用此类,但您也可以子类化   自定义类行为。

使用带导航控制器的导航栏

  

使用导航栏的最常用方法是使用导航栏   UINavigationController对象。 如果您使用导航控制器   管理不同内容屏幕之间的导航   导航控制器自动创建导航栏   适当时推送和弹出导航项。

     

导航控制器会自动将自己指定为委托   其导航栏对象。因此,在使用导航时   控制器,不要将自定义委托对象分配给相应的   导航栏

enter image description here