iOS Swift:在视图控制器的底部添加或移动NavigationBar

Suj*_*U N 2 frame uinavigationcontroller navigationbar ios swift

我想将导航控制器栏移动到视图控制器的底部。我怎样才能做到这一点?

我试过了 :

self.navigationController!.navigationBar.frame = CGRectMake(
        0,
        UIScreen.mainScreen().bounds.height - 50,
        UIScreen.mainScreen().bounds.width,
        50)
Run Code Online (Sandbox Code Playgroud)

这正在移至底部,但隐藏了所有其他控制器对象,并且后退按钮也未启动。

San*_*ari 5

Sujay联合国,

您不应尝试将嵌入的UINavigationController提供的UINavigationBar移到屏幕底部。尝试这样做将使所有视图都移到其下方,从而导致所有控制器对象都隐藏。

解决方法

方法1:

考虑使用工具栏:)

工具栏旨在放置在屏幕底部。如果您使用的是xib或Storyboard,则可以从组件库中选择工具栏并将其放在ViewController的底部,然后正确应用自动调整大小的蒙版或约束:)

在此处输入图片说明

现在,为了显示后退按钮,请使用UIBarButtonItems。将样式更改为custom并为其提供箭头图像或提供默认样式。 在此处输入图片说明

尽管现在您都准备就绪了:)您会注意到UINavigationBar位于视图控制器的顶部。为了摆脱它,

选择您的ViewController,选择其TopBar属性,将其设置为none :) 在此处输入图片说明

方法2

使用UINavigationBar。

特定于使用导航栏,而又不想使用工具栏,那么您也可以使用UINavigationBar做同样的事情。

从组件库中拖动UINavigationBar,将其放在屏幕底部。将UIBarButtonItem拖放为leftBarButtonItem,将barButtonItem图像更改为背面图像。(与UIToolBar相同的过程,只是使用UINavigationBar来代替)

在此处输入图片说明

了解这与嵌入式NavigationController提供的导航栏不同。因此,也要摆脱ViewController顶部的NavigationBar的限制,就像我在上文中解释的一样

最后,

在这两种情况下,都从barbutton项绘制一个IBoutlet并以编程方式处理弹出viewController的问题。

快乐的编码:)