iOS右侧导航按钮不显示在UINavigationBar中

iOS右侧导航按钮不显示在UINavigationBar中,第1张

概述我有以下视图控制器层次结构: >查看控制器VC1 >标签栏控制器TBC1 – 在故事板中配置以通向表视图控制器TVC1和地图视图控制器MVC1 >表视图控制器TVC1 >表视图控制器TVC2 在VC1中,我这样做: [self.navigationController pushViewController:TBC1 animated:YES]; 这正确地打开了标签栏控制器,TVC1成为焦点. TV 我有以下视图控制器层次结构:

>查看控制器VC1
>标签栏控制器TBC1 – 在故事板中配置以通向表视图控制器TVC1和地图视图控制器MVC1
>表视图控制器TVC1
>表视图控制器TVC2

在VC1中,我这样做:

[self.navigationController pushVIEwController:TBC1 animated:YES];

这正确地打开了标签栏控制器,TVC1成为焦点.

TVC1在其导航栏中显示后退按钮(以编程方式从VC1代码创建),这将使我获得VC1,这是预期的.

但是,从TVC1开始,我需要再向TVC2导航一次.我正在尝试为TVC1导航栏添加右键,但它没有显示出来.

这是我在TVC1中使用的代码(rightbutton是TVC1的UIbutton类型属性):

self.rightbutton = [[UIbarbuttonItem alloc]                            initWithbarbuttonSystemItem: UIbarbuttonSystemItemAdd                            target: self                            action: @selector(MySelector:)];   self.rightbutton.style = UIbarbuttonItemStylebordered;   self.rightbutton.Title = @"";   self.navigationItem.rightbarbuttonItems = [NSArray arrayWithObjects:   self.rightbutton,nil];

(指定空白标题和样式只是为了确保这是导致这个的问题,我实际上并不需要这些值)

MySelector在TVC1.h中声明为:

- (voID) MySelector:(ID)sender;

而且它也得到了适当的实施.

但上面的rightbutton不会显示在TVC1导航栏中.

我错过了什么?
我怀疑它与VC1和TVC1之间的TBC1(标签栏),并以某种方式重置导航属性.

但后来我争辩说我在TVC1上看到了导航栏,而左边的按钮则指向VC1.
我在TBC1中检查过,self.navigationItem.rightbarbuttonItems里面有一个对象,其中肯定是我正在添加的rightbutton.

我哪里错了?

注意:以上内容适用于所有iOS 5.0,5.1和6.0模拟器.

解决方法 在我看来,你的故事板中缺少TVC1和TVC2之间的UINavigationController.如果您正在使用故事板,那么您可以在导航控制器本身上创建导航项目添加按钮类型,并向TVC2推送PUSH segue.如果有意义,请参见 this图表.如果这不能解决您的问题,那么请上传示例代码,我将看看.

[编辑]

我通过在故事板中创建视图控制器结构来重现您的问题.

如果你注意到这里TVC1没有它的UINavigationController,但它是从VC1继承的.你的问题的解决方案不是将rightbutton添加到self上,而是将它添加到self.parentVIEwController,你将在TVC1中看到rightbutton.但请注意,它也会出现在MVC1中,因为它属于TBC1的父级.你可以在MVC1的vIEwWillAppear中隐藏右键按钮,如果你不想在那里.以下是代码.

self.rightbutton = [[UIbarbuttonItem alloc]                    initWithbarbuttonSystemItem: UIbarbuttonSystemItemAdd                    target: self                    action: @selector(MySelector:)];self.rightbutton.style = UIbarbuttonItemStylebordered;self.parentVIEwController.navigationItem.rightbarbuttonItems = [NSArray arrayWithObjects: self.rightbutton,nil];

如果要在TVC1的导航控制器中添加右键,则需要将TVC1嵌入到UINavigationController中.为此,请在故事板中选择TVC1屏幕 – >编辑 – >嵌入 – >导航控制器.当你这样做时,你的代码也会工作,并会显示你的右键,但由于你的故事板结构,你将有两个导航控制器(见下图).您将需要隐藏Parent的导航控制器进入TVC1的视图加载并留下按钮d出到ParentvIEw Controller.你在MVC1中做同样的事情.

希望这可以帮助!快乐编码:)

总结

以上是内存溢出为你收集整理的iOS右侧导航按钮不显示在UINavigationBar中全部内容,希望文章能够帮你解决iOS右侧导航按钮不显示在UINavigationBar中所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1064503.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存