【问题标题】:Inside tabbar viewcontrollers navigationbar changes not working from storyboard内部标签栏视图控制器导航栏更改在情节提要中不起作用
【发布时间】:2016-10-24 18:27:37
【问题描述】:

我已经创建了

NavigationController(Main) -> LoginViewController -> Tabbarviewcontroller -> HomeViewController

如果我通过情节提要在 HomeViewController 中添加 barbutton 项目,它不会显示在模拟器中。

但我可以看到故事板的变化。

Title Home1 和 barbutton 项目未在模拟器中显示

【问题讨论】:

  • 添加你的故事板截图
  • @suhit - 添加了截图
  • 您是否在应用程序的某处设置了 tintColor
  • @zombie - 在主导航视图控制器中是
  • 您应该在代码或情节提要中更改它,但最终将是代码

标签: ios swift uistoryboard


【解决方案1】:

试试这个代码:在 Swift 3 中测试:

注意:删除所有 barButtonItems 并尝试以下代码。

将此代码添加到您的 Home1 VC:

override func viewWillAppear(_ animated: Bool) {
    let RightButtomitem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(handler)) 
    self.tabBarController?.navigationItem.rightBarButtonItem = RightButtomitem
}

func handler(sender:UIButton) {
    print("Add Button pressed")
}

将此代码添加到您的 Home2 VC:

override func viewWillAppear(_ animated: Bool) {
    let RightButtomitem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(handler)) 
    self.tabBarController?.navigationItem.rightBarButtonItem = RightButtomitem
}

func handler(sender:UIButton) {
     print("Done Button Pressed")
}

输出:

【讨论】:

    【解决方案2】:

    首先,您在 NavagationController 中隐藏导航栏,然后制作自定义栏,然后将其添加到 bar 中。

    【讨论】:

    • 如果我们隐藏导航栏,那么我需要添加所有视图控制器
    • 假设您没有在任何 VC 中显示后退按钮,那么您根本没有添加自定义栏......意味着当您设置自定义栏时,您会按照自己的方式制作。当您制作一次时,您只需在故事板中复制过去..
    • 现在我从 navigationviewcontroller 隐藏了导航栏。现在在每个视图控制器中添加单独的导航栏。当我添加导航栏时,它没有延伸到状态栏,而是低于状态栏 44 像素高度
    • 首先您隐藏 NavigationBar 以取消选中主导航控制器中的显示栏 .. 然后取一个高度为 64 且屏幕宽度相同的 UIView .... 现在您取一个按钮高度为 44 和宽度为 44 并设置左下角现在你会得到一个 UIlabel,它的标题设置在中间,strate 在后退按钮..
    【解决方案3】:

    您可以通过编程方式进行尝试

    HomeViewController ---

    override func viewWillAppear(animated: Bool) { 
        super.viewWillAppear(true) 
        let barButtomitem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: #selector(handler)) 
        self.tabBarController?.navigationItem.rightBarButtonItem = barButtomitem
    }
    

    SecondItemViewController--

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(true)
        self.tabBarController?.navigationItem.rightBarButtonItem = nil
    }
    

    并且不要在情节提要中添加 barbutton ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-04
      • 2011-10-31
      • 2013-02-21
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 2011-12-28
      相关资源
      最近更新 更多