如何将 UIBarButtonItem 添加到 turbolinks-ios 应用程序中的导航栏
How do I Add a UIBarButtonItem to the navigationBar in a turbolinks-ios app
我有一个我继承的 turbolinks-ios
应用程序,需要添加本机导航。
起初我使用故事板将主应用程序控制器嵌入到导航控制器中,但 turbolinks 有自己的导航栏,因此创建了两个堆叠的导航栏。然后我从故事板中删除了导航控制器,但现在我无法将我的按钮添加到默认的 turbolinks 导航栏。没有错误,如果我单步执行代码,它会命中我函数中的每一行,但栏中不会显示任何内容。我做错了什么?
我在 UINavigationController class 中从 viewDidLoad()
调用的函数如下...
func addSlideMenuButton() {
let callback = #selector(toggleNav)
let btnShowMenu = UIButton(type: UIButtonType.system)
btnShowMenu.setImage(self.defaultMenuImage(), for: UIControlState())
btnShowMenu.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
btnShowMenu.addTarget(self, action: callback, for: UIControlEvents.touchUpInside)
let customBarItem = UIBarButtonItem(customView: btnShowMenu)
navigationController?.navigationItem.rightBarButtonItem = customBarItem
}
任何正确方向的推动都将不胜感激。
您必须先在 customView
上致电 sizeToFit
。
所以在创建 UIBarButtonItem
之前添加 btnShowMenu.sizeToFit
。
我有一个我继承的 turbolinks-ios
应用程序,需要添加本机导航。
起初我使用故事板将主应用程序控制器嵌入到导航控制器中,但 turbolinks 有自己的导航栏,因此创建了两个堆叠的导航栏。然后我从故事板中删除了导航控制器,但现在我无法将我的按钮添加到默认的 turbolinks 导航栏。没有错误,如果我单步执行代码,它会命中我函数中的每一行,但栏中不会显示任何内容。我做错了什么?
我在 UINavigationController class 中从 viewDidLoad()
调用的函数如下...
func addSlideMenuButton() {
let callback = #selector(toggleNav)
let btnShowMenu = UIButton(type: UIButtonType.system)
btnShowMenu.setImage(self.defaultMenuImage(), for: UIControlState())
btnShowMenu.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
btnShowMenu.addTarget(self, action: callback, for: UIControlEvents.touchUpInside)
let customBarItem = UIBarButtonItem(customView: btnShowMenu)
navigationController?.navigationItem.rightBarButtonItem = customBarItem
}
任何正确方向的推动都将不胜感激。
您必须先在 customView
上致电 sizeToFit
。
所以在创建 UIBarButtonItem
之前添加 btnShowMenu.sizeToFit
。