Ios 如何用backbarbuttonim替换leftbarbuttonim

Ios 如何用backbarbuttonim替换leftbarbuttonim,ios,uinavigationcontroller,Ios,Uinavigationcontroller,在Interface Builder中,我创建了一个视图,作为故事板的一部分,它过去仅在一个不同的上下文中显示(作为UITabBarController的视图) 现在,我想将此视图作为UINavigationController视图的一部分进行重用,但通常情况下,该视图工作正常。唯一的问题是,在IB中,我放置了一个按钮作为LeftBarButtonim。因此,当我将同一个视图控制器推到导航控制器的堆栈上时,它将不再自动放置BackbarButtonim 有没有一个标准的方法来处理这种情况?根据v

在Interface Builder中,我创建了一个视图,作为故事板的一部分,它过去仅在一个不同的上下文中显示(作为UITabBarController的视图)

现在,我想将此视图作为UINavigationController视图的一部分进行重用,但通常情况下,该视图工作正常。唯一的问题是,在IB中,我放置了一个按钮作为LeftBarButtonim。因此,当我将同一个视图控制器推到导航控制器的堆栈上时,它将不再自动放置BackbarButtonim

有没有一个标准的方法来处理这种情况?根据viewcontroller是UIAbbarController还是UINavigationController的一部分,我是否必须自己删除该按钮?我想将按钮保持在IB中。因此,在ViewDidEnglish中将LeftBarButtonim设置为nil只是一种帮助。这确实正确地显示了BackBarButtonim,但当用户返回到该屏幕时,我必须再次手动设置LeftBarButtonim。

然后尝试使用以下方法:

self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem;
然后尝试使用以下方法:

self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem;

不。我想显示后退按钮,而不是隐藏它。我正在寻找类似“self.navigationItem.LeftBarButtonimReplacesbackBarButtonim=NO”的内容。
self.navigationItem.BackButtonim
出于某种原因总是(null)(我猜是因为LeftBarButtonim是在IB中设置的)。因此,新代码只起到一半的作用,因为它现在总是隐藏LeftBarbuttonite。我需要一些条件,我猜我可以在viewDidLoad上查询这些条件,以编程方式将LeftBarButtonim设置为nil。是的,执行此操作的最佳方法是检查是否有任何viewcontroller被推送到堆栈上。如果是,这意味着它被推,否则它将被显示(在本例中,backbutton将为(null))。因此,编写代码。好的。。。因此,我现在在viewDidLoad中使用这段代码,这段代码运行正常:
if(self.navigationController.topViewController==self&&self.navigationController.viewControllers.count>1){self.navigationItem.leftBarButtonItem=nil;}
。也许还有人可以提出一个更优雅的解决方案。先生@Shantanu你也很棒:)不。我想显示后退按钮,而不是隐藏它。我正在寻找类似“self.navigationItem.LeftBarButtonimReplacesbackBarButtonim=NO”的内容。
self.navigationItem.BackButtonim
出于某种原因总是(null)(我猜是因为LeftBarButtonim是在IB中设置的)。因此,新代码只起到一半的作用,因为它现在总是隐藏LeftBarbuttonite。我需要一些条件,我猜我可以在viewDidLoad上查询这些条件,以编程方式将LeftBarButtonim设置为nil。是的,执行此操作的最佳方法是检查是否有任何viewcontroller被推送到堆栈上。如果是,这意味着它被推,否则它将被显示(在本例中,backbutton将为(null))。因此,编写代码。好的。。。因此,我现在在viewDidLoad中使用这段代码,这段代码运行正常:
if(self.navigationController.topViewController==self&&self.navigationController.viewControllers.count>1){self.navigationItem.leftBarButtonItem=nil;}
。也许还有人可以提出一个更优雅的解决方案。先生@Shantanu你也很棒:)