我正在开发一个iPhone视图,它包含3个元素,UITextView,UIToolBar和UIBarButtonItem.
目标是,我希望UIBarButtonItem将其样式从'edit'(UIBarButtonSystemItemEdit)更改为'Done'(UIBarButtonSystemItemDone)并将新选择器更新为新方法.
首先,我尝试了以下代码,但它不起作用:
你能帮我解决这个问题吗?
我在 UIViewController 中有一个表视图,启用了编辑功能以删除行。从右侧滑动可以删除行,并且导航栏上有编辑按钮,但除了从“编辑”切换到“完成”之外,它实际上没有执行任何操作。
这是我创建表视图的方法。
override func viewWillAppear(animated: Bool) {
for view in self.view.subviews {
view.removeFromSuperview()
}
if sharedCart.shoppingCart.isEmpty {
self.navigationItem.rightBarButtonItem = nil
isEmptyLabel = UILabel(frame: CGRectMake(self.view.frame.width / 2, self.view.frame.height / 2, self.view.frame.width, self.view.frame.height))
isEmptyLabel.center = self.view.center
isEmptyLabel.text = "Your cart is empty."
isEmptyLabel.textAlignment = .Center
isEmptyLabel.textColor = UIColor.whiteColor()
isEmptyLabel.font = UIFont(name: "Helvetica-Light", size: 20.0)
self.view.addSubview(isEmptyLabel)
} else {
isEmptyLabel.removeFromSuperview()
total = 0
let editItem = self.editButtonItem()
self.navigationItem.rightBarButtonItem = editItem
tableView = UITableView(frame: self.view.frame, style: .Grouped)
tableView.delegate = self
tableView.dataSource = …Run Code Online (Sandbox Code Playgroud) 我管理(有很多试验和错误)让我的tableview 只提供重新排序功能,即我的tableview是可编辑的,但是没有显示"删除图标",也没有在点击编辑按钮时缩进行.
现在我希望按钮读取"排序"而不是"编辑".
我天真地试过这个:
self.navigationItem.leftBarButtonItem = self.editButtonItem;
self.navigationItem.leftBarButtonItem.title = @"Sort";
Run Code Online (Sandbox Code Playgroud)
它只能运行一次,即它被正确标记为"排序",一旦点击它就会重命名为"完成",但随后 - 按预期 - 重新重命名为"编辑".
为了解决这个问题,我在导航栏上部署了"自己的"按钮.这个解决方案有效 - 我可以通过按钮来控制tableview编辑模式,在更改时重新加载数据,重命名自己等等 - 但我无法让它"保持突出显示",即"编辑"按钮的默认行为在tableview中.
现在我的问题是:
a)有没有办法重命名(并保持重命名,例如通过回调)标准的"编辑"按钮?
要么
b)有没有办法让按钮表现为"模态",即保持选中状态,就像标准的"编辑"按钮一样?
感谢您的任何想法.