Barbutton项目在导航栏中没有显示

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

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

当我触摸其中一个button,我仍然有一个很好的绿色导航栏,但我的button不起作用。

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

我还将下面的代码添加到了我的viewDidLoad()中:

let leftItem = UIBarButtonItem(title: "< Back", style: .Done, target: self, action: Selector("Save")) let rightItem = UIBarButtonItem(title: "Save", style: .Plain, target: self, action: Selector("Save")) //self.parentViewController?.navigationItem.leftBarButtonItem = leftItem // also doesn't work navigationController?.navigationItem.leftBarButtonItem = leftItem navigationController?.navigationItem.rightBarButtonItem = rightItem 

但它不会有任何影响。

我检查了是否正确的UIViewController被分配到故事板的我的观点,做了几个清洁生成(CMD + Shift + K)和重build(CMD + B)。

以下图片是我的故事板的一部分的屏幕截图,以及我的应用程序的屏幕截图,其中button不会显示。

编辑

在视图中添加了关于控件的新屏幕截图。 这些不能在我的viewDidLoad中使用不使用额外的代码。

我的故事板的屏幕截图

我的应用程序的按钮应该显示的屏幕截图

我的视图中控件设置的屏幕截图

删除你的第一个导航控制器,其次你不需要添加返回button只是使用push segue,第三尝试使用self.navigationItem.leftBarButtonItem(尝试添加自我在开始。)*原始答案是一个评论。

代替

 navigationController?.navigationItem.leftBarButtonItem = leftItem 

 navigationItem.leftBarButtonItem = leftItem 

更新我build议你直接将它们添加到你的ViewController的故事板

我有两个阶段:一个通过故事板segue,一个编程。 故事板segue按预期显示button。 然而,程序性的segue显示了没有button的视图。

对于编程的继续,我正在使用:

 present(theNewVC, animated: true) 

当我将其改为:

 show(theNewVC, sender: self) 

根据文档, present(...)以模态方式呈现视图控制器。 显然,一个模式视图控制器不会得到导航栏button。 我进一步证实了这一点,通过改变我的故事板segue到Present Modally – 并且button消失在那里以及。

(使用Xcode 9,Swift 4)

最近发生在我身上。 我正在做Ersin所说的,但是无济于事。 回过头来,发现这是罪魁祸首:

nav.pushViewController(notifications, animated: false) nav.pushViewController(interactionCreateOrEdit, animated: false)

我改变了

nav.setViewControllers([notifications, interactionCreateOrEdit], animated: false)

和UIBarButtonItems开始再次出现。

 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; 

这个代码写在ViewWillAppear方法上。