如何在运行时更改UINaviagationBar中的UIBarButtonItem类型?

Tee*_*sej 7 iphone uinavigationbar uibarbuttonitem

我正在开发一个iPhone视图,它包含3个元素,UITextView,UIToolBar和UIBarButtonItem.

目标是,我希望UIBarButtonItem将其样式从'edit'(UIBarButtonSystemItemEdit)更改为'Done'(UIBarButtonSystemItemDone)并将新选择器更新为新方法.

首先,我尝试了以下代码,但它不起作用:

你能帮我解决这个问题吗?

Lou*_*arg 14

有一个带有此行为的内置栏按钮,您可以通过editButtonItemUIViewContoller 的属性获取它.选中该按钮将更改其进入编辑模式的视图控制器,并将按钮切换为完成按钮.

- (void)viewDidLoad {
  [super viewDidLoad];
  self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您已通过IB添加按钮,请确保将标识符设置为自定义.还要在.h中分配一个按钮,并使用适当的IBOutlet和属性合成.m中的按钮

然后在您的代码中执行以下操作:

// Set to done
editButton.style = UIBarButtonItemStyleDone;
editButton.title = @"Done";

// Set back to edit
editButton.style = UIBarButtonItemStyleBordered;
editButton.title = @"Edit";
Run Code Online (Sandbox Code Playgroud)