前提・実現したいこと
UITextFieldに余白を入れた実装をしたのですが、なぜかnavigationItem.rightBarButtonItem
が機能しなくなります。
環境
- Swift4
- xcode9.3
発生している問題・エラーメッセージ
swift
1class TableViewController: UITableViewController { 2 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 6 navigationItem.title = "Todo" 7 navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(self.addTodo)) 8 9 // Uncomment the following line to preserve selection between presentations 10 // self.clearsSelectionOnViewWillAppear = false 11 12 // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 13 // self.navigationItem.rightBarButtonItem = self.editButtonItem 14 } 15 16 override func didReceiveMemoryWarning() { 17 super.didReceiveMemoryWarning() 18 // Dispose of any resources that can be recreated. 19 } 20 21 // MARK: - Table view data source 22 23 override func numberOfSections(in tableView: UITableView) -> Int { 24 // #warning Incomplete implementation, return the number of sections 25 return 0 26 } 27 28 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 29 // #warning Incomplete implementation, return the number of rows 30 return 0 31 } 32 33 // MARK: objces 34 @objc func addTodo(){ 35 let c = AddViewController() 36 navigationController?.pushViewController(c, animated: true) 37 } 38 39}
以下のソースが問題のコードです。
swift
1class AddViewController: UIViewController { 2 3 let label = UILabel() 4 let titleField = UITextField() 5 let bodyField = UITextField() 6 let btn = UIButton() 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 11 let viewWidth = self.view.bounds.width 12 let viewHeight = self.view.bounds.height 13 let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 5)) 14 paddingView.backgroundColor = UIColor.clear 15 16 label.frame = CGRect(x: viewWidth / 4, y: viewHeight / 2 - 50, width: viewWidth / 2, height: 30) 17 label.text = "Add your Todo" 18 label.textAlignment = .center 19 self.view.addSubview(label) 20 21 titleField.frame = CGRect(x: 20, y: viewHeight / 2, width: viewWidth - 40, height: 30) 22 titleField.placeholder = "title" 23 titleField.layer.borderWidth = 0.5 24 titleField.leftView = paddingView 25 titleField.leftViewMode = .always 26 self.view.addSubview(titleField) 27 28 bodyField.frame = CGRect(x: 20, y: viewHeight / 2 + 50, width: viewWidth - 40, height: 30) 29 bodyField.placeholder = "body" 30 bodyField.layer.borderWidth = 0.5 31 bodyField.leftView = paddingView 32 //以下のコメントアウトを外すとnavigationItemが動作しなくなる 33 //bodyField.leftViewMode = .always 34 self.view.addSubview(bodyField) 35 } 36 37}
ご助言頂けますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/08 01:41
2018/05/08 21:06