在代码中访问导航栏按钮

时间:2015-07-20 20:10:23

标签: ios swift uinavigationbar

我的导航栏右侧有一个按钮,它是一个Done按钮。我在故事板上创建了它。我试图在代码中禁用它。如何访问此按钮?

4 个答案:

答案 0 :(得分:4)

有两种方法可以做到:

  1. 当您使用Interface Builder创建按钮时,您可以使用Xcode的拖放实用程序为其声明@IBOutlet,并禁用/隐藏导航栏中的按钮以下方式:

    // hide the button
    self.rightButton.hidden = true
    
    // disable the button
    self.rightButton.enabled = false
    
    // change its title
    self.rightButton.setTitle("NEW TITLE", forState: .Normal)
    

    @IBOutlet是这样的:

    @IBOutlet weak var rightButton: UIButton!
    
  2. 如果您不想宣布任何@IBOutlet,您可以在任何您想要的地方设置self.navigationItem.rightBarButtonItemnil

    // remove the button
    self.navigationItem.rightBarButtonItem = nil
    
    // disable the button
    self.navigationItem.rightBarButtonItem?.enabled = false
    

    以上代码禁用您设置的任何先前按钮。

  3. 我希望这对你有所帮助。

答案 1 :(得分:0)

navigationItem.rightBarButtonItem?

答案 2 :(得分:0)

if let iuRightNavigationButton = self.navigationItem.rightBarButtonItem
{
iuRightNavigationButton.enable = false
}

它基本上检查rightBarbutton项,如果有,则禁用它。你不需要声明任何iboutlet来执行此操作

答案 3 :(得分:-1)

尝试在视图控制器中创建插座: @IBOutlet weak var doneButton:UIBarButtonItem! 将barbuttonItem链接到故事板中的doneButton变量。

在禁用它时分配值false。 在视图确实加载:

doneButton.enabled = false