在代码中访问导航栏按钮

Access nav bar button in code

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

navigationItem.rightBarButtonItem?

尝试在您的视图控制器中创建插座: @IBOutlet 弱变量 doneButton:UIBarButtonItem! link 故事板中 doneButton 变量的 barbuttonItem。

禁用时赋值false。 在查看加载:

doneButton.enabled = 假

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

它基本上检查 rightBarbutton 项,如果有则它 disables.You 不需要声明任何 iboutlet 来执行此操作

有两种方法:

  1. 当您使用 Interface Builder 创建按钮后,您可以使用 Xcode 和 [=37 的 drag-and/drop 实用程序为其声明一个 @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
    

    上面的代码会禁用您之前设置的任何按钮。

希望对您有所帮助。