Ios 导航栏中未显示栏按钮项

Ios 导航栏中未显示栏按钮项,ios,swift,uinavigationbar,uinavigationitem,Ios,Swift,Uinavigationbar,Uinavigationitem,我正在开发一个应用程序,其中我的初始视图控制器嵌入到导航控制器和选项卡栏控制器中 在我的应用程序中,我有3个不同的选项卡,其中一个选项卡是设置视图。这是一个有5个按钮的tableview。触摸每个按钮时,都会显示相同的视图控制器 当我触摸其中一个按钮时,我仍然有一个漂亮的绿色导航栏,但我的按钮不工作 我尝试将一个导航项拖动到我故事板中的视图中,然后在其中放置一个条形按钮项。我可以在我的故事板中看到按钮,但当我运行它时,它不会显示在我的应用程序中 我还向viewDidLoad()添加了以下代码:

我正在开发一个应用程序,其中我的初始视图控制器嵌入到导航控制器和选项卡栏控制器中

在我的应用程序中,我有3个不同的选项卡,其中一个选项卡是设置视图。这是一个有5个按钮的tableview。触摸每个按钮时,都会显示相同的视图控制器

当我触摸其中一个按钮时,我仍然有一个漂亮的绿色导航栏,但我的按钮不工作

我尝试将一个导航项拖动到我故事板中的视图中,然后在其中放置一个条形按钮项。我可以在我的故事板中看到按钮,但当我运行它时,它不会显示在我的应用程序中

我还向viewDidLoad()添加了以下代码:

let leftItem=UIBarButtonItem(标题:
但它不会有任何效果

我在情节提要中检查了是否为我的视图分配了正确的UIViewController,进行了几次干净的构建(CMD+Shift+K)和重建(CMD+B)

下面的图片是我的故事板的一部分截图和我的应用程序在视图中的一个截图,其中按钮不会显示

编辑

添加了有关视图中控件的新屏幕截图。如果没有my viewDidLoad中的附加代码,这些命令将无法与一起使用

而不是

navigationController?.navigationItem.leftBarButtonItem = leftItem


更新我建议您直接在故事板中将它们添加到您的Viewcontroller中

删除第一个导航控制器,第二个不需要添加后退按钮,只需使用push segue,第三个尝试使用self.navigationItem.LeftBarButtonim(尝试在开头添加self)。*最初的答案是一条评论

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];

    [button setImage:[[UIImage imageNamed:@"BtnBack"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
    [button.imageView setTintColor:[UIColor whiteColor]];
    [button addTarget:self action:@selector(buttonClicked:)
     forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc]
                                   initWithCustomView:button];
    self.navigationItem.leftBarButtonItem = buttonItem;

这段代码是在viewwillappease方法上编写的。

这最近发生在我身上。我在做埃尔辛提到的事,但没有用。再回溯一点,发现这就是罪魁祸首:


导航.pushViewController(通知,动画:false)
nav.pushViewController(interactionCreateOrEdit,动画:false)

我把它改成了


setViewController([notifications,interactionCreateOrEdit],动画:false)


而uibarbuttonims又开始出现了。

我有两个片段:一个是通过故事板片段,另一个是编程片段。故事板序列如预期的那样显示按钮。然而,程序段显示的是没有按钮的视图

对于编程阶段,我使用了:

present(theNewVC, animated: true)
当我将其更改为:

show(theNewVC, sender: self)
根据文档,
present(…)
以模式显示视图控制器。显然,模态视图控制器没有导航栏按钮。我进一步证实了这一点,将我的故事板序列改为“现在模式”
,按钮也消失了


(使用Xcode 9,Swift 4)

我也遇到了同样的问题

在iOS 11中,它工作正常,但对于iOS 10或更低版本,它没有显示通过编程添加的uibarbuttonies

请为UIBarButtonItem分配框架

let button=ui按钮(类型:。自定义)
setImage(UIImage(名为:“img_name”),用于:。正常)
button.addTarget(self,action:#选择器(btnAction),用于:。touchUpInside)
button.frame=CGRect(x:0,y:0,宽度:32,高度:32)
让barButton=UIBarButtonItem(自定义视图:按钮)

self.navigationItem.rightBarButtonItem=barButton
抱歉,但这没有任何效果。更新了我的答案,您不能通过故事板添加它们吗?您必须先拖放navigationItem不起作用。我用添加到情节提要视图中的控件的屏幕截图更新了我的问题。是否将navigationItem拖到navigationBar?好像你刚刚在ViewControllerI中拖动了它,我又做了一次,但似乎没有可用的导航栏。当我添加一个时,我可以在当前导航栏下看到一条小行。移除第一个导航控制器(最初的视图控制器)解决了我的问题。谢谢你的帮助。删除你的第一个导航控制器,第二个你不需要添加后退按钮,只需使用push segue,第三个尝试使用self.navigationItem.LeftBarButtonim(尝试在开头添加self。)@ErsinSezgin谢谢!我的问题解决了。当你能给出答案时,我会接受的。
present(theNewVC, animated: true)
show(theNewVC, sender: self)