ios – 仅将子视图添加到当前视图的UINavigationBar

ios – 仅将子视图添加到当前视图的UINavigationBar,第1张

概述我想要做的是为我的UINavigationController的UINavigationBar添加一个自定义视图,但仅限于当前可见的视图控制器. 因此,我通过获取引用来构建我想要在容器视图中添加的视图的子视图,并将此视图添加到导航栏: let navBar = navigationController?.navigationBar as UINavigationBar! 结果如下: 但是,当我在U 我想要做的是为我的UINavigationController的UINavigationbar添加一个自定义视图,但仅限于当前可见的视图控制器.

因此,我通过获取引用来构建我想要在容器视图中添加的视图的子视图,并将此视图添加到导航栏:

let navbar = navigationController?.navigationbar as UINavigationbar!

结果如下:

但是,当我在UINavigationController堆栈中推送另一个视图控制器时,此子视图仍然存在于推送的vIEwControllers的UINavigationbar中:

仅在我当前视图的UINavigationbar中添加此子视图的最佳方法是什么,并且还没有在连续的视图控制器上保留它?

解决方法 发生这种情况有几个原因:

>将子视图添加到UINavigationbar并不完全不受支持,但可能会导致奇怪的行为.
> UINavigationController中的所有视图控制器共享相同的UINavigationbar(这就是新推送的视图控制器对子视图没有任何影响的原因).

如果你想正确地做到这一点,这里有两个可能的解决方案:

>当理想的视图控制器可见时,使用vIEwWillAppear和vIEwWilldisappear添加/显示和删除/隐藏子视图.
>使用UINavigationItem的TitleVIEw属性来分配此视图,例如:

// Example code in Obj-C,sorry!myVIEwController.navigationItem.TitleVIEw = [[MySearchVIEw alloc] init];

这样,搜索视图对于该视图控制器是唯一的.

总结

以上是内存溢出为你收集整理的ios – 仅将子视图添加到当前视图的UINavigationBar全部内容,希望文章能够帮你解决ios – 仅将子视图添加到当前视图的UINavigationBar所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1108215.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存