我有三个导航屏幕。但在其中一个,我不能放一个UIBarButtoItem。这个屏幕用于创建一个寄存器,我想创建一个按钮来保存"这个简单。当我这样做时,我选择了Bar Button Item,XCode不会让我掉到栏上。并且以编程方式,也不起作用。
我试过这个:(没有发生)
var btSalvar : UIBarButtonItem?
override func viewDidLoad() {
super.viewDidLoad()
btSalvar = UIBarButtonItem(title: "Salver", style: .plain, target: self, action: nil)
self.navigationItem.rightBarButtonItem = btSalvar
// Do any additional setup after loading the view.
}
在故事板中:(注意:按钮"项目"没有固定在栏上)
答案 0 :(得分:1)
您有很多选择,其中之一是:
您必须创建一个超级视图控制器并在其中添加导航按钮代码。我为演示添加了一个后退按钮:
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
/**
To add the left back button on navigation.
*/
var addLeftBarMenuButtonEnabled: Bool? {
didSet {
if addLeftBarMenuButtonEnabled! {
let leftBarBtn = UIButton()
leftBarBtn.setImage(UIImage(named: "backIcon"), for: .normal)
leftBarBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
leftBarBtn.addTarget(self, action: #selector(actionBackButton), for: .touchUpInside)
self.navigationItem.leftBarButtonItem = UIBarButtonItem.init(customView: leftBarBtn)
} else {
self.navigationItem.setHidesBackButton(true, animated: true)
}
}
}
///This is action method for back button
@objc func actionBackButton() {
self.view.endEditing(true)
self.navigationController?.popViewController(animated: true)
}
}
现在你需要使用视图控制器中的后退按钮,超级视图控制器是MainViewController:
class ViewController: MainViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.addLeftBarMenuButtonEnabled = true
}
}
您可以添加这样的导航按钮并使用您想要的位置。如果你想在每个视图控制器中使用它,那么你必须添加' self.addLeftBarMenuButtonEnabled = true'在主视图控制器中
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.addLeftBarMenuButtonEnabled = true
}
}