ios:关于NavigationController的问题。强制与否?

时间:2013-01-30 19:59:01

标签: ios

我有一个关于NavigationController的问题。

首先,如果我使用故事板和几个视图,导航控制器是强制性的吗?

我有第一个ViewController,我已经在Push模式下将链接(Storyboard Segue)发送到另一个视图(inappsettingskit视图)。是否必须有一个NavigationController才能使用它,或者我可以在没有NavigationController帮助的情况下通过Push打开第二个视图吗?

另一个问题:我试图将一个NavigationController链接(root)添加到我的主ViewController。但我不想在这个视图上有一个导航栏。它会自动在此视图中放置一个带有“SHOW”按钮的导航栏。我可以删除吗?

我试图在NavigationController的选项中删除它(取消选中导航栏),但它仍然显示在我的状态栏中!我该如何完全删除它?

enter image description here

最后一个问题:如果我将Push Segue视图中的按钮链接到第二个viewcontroller,它就可以了。但是,如果我从工具栏链接按钮,它不起作用..缺少什么?

enter image description here

2 个答案:

答案 0 :(得分:1)

1。)不,导航控制器只是让多个视图之间的导航变得更加容易。

2。)为了使标准的“Push”segue起作用,你必须使用导航控制器

3.)您可以在代码中隐藏导航栏。执行此操作的好地方是viewWillAppear

[self.navigationController setNavigationBarHidden:YES animated:YES];

我不确定为什么工具栏上的按钮不起作用,但请尝试使用UIBarButtonItem代替UIButton

答案 1 :(得分:0)

如果你正在使用push segues,是的,你应该有一个导航控制器。如果您不希望导航栏可见,请在Interface Builder中选择导航控制器,并在Interface Builder的最右侧面板的属性检查器中取消选中“显示导航栏”选项。

enter image description here

您可以通过setNavigationBarHidden:animated:以编程方式显示或隐藏控制器的导航栏。

通过隐藏导航栏的导航控制器,您可以享受导航控制器跟踪一组视图控制器的功能,使您能够弹出视图控制器(或弹出“到”特定控制器)或弹出到根控制器)。但是,如果导航栏被隐藏,你显然会失去内置的“后退”按钮。

最后,如果您需要UIToolbar或导航栏中的按钮,则应使用UIBarButtonItem(在界面生成器控件列表中列为“条形按钮项”)。