我使用以下代码在我的视图中添加带按钮的导航栏:
let navBar = UINavigationBar(frame: CGRectMake(0, 20, screenWidth, 44))
var homeButton : UIBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Bordered, target: controller, action: "closeView")
homeButton.image = UIImage(named: "back.png")
var item = UINavigationItem(title: title)
item.leftBarButtonItem = homeButton
if addPlus {
var addButton : UIBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Bordered, target: controller, action: "addItem")
addButton.image = UIImage(named: "plus-25.png")
item.rightBarButtonItems = [addButton]
}
var items = [
item
]
navBar.setItems(items, animated: true)
controller.view.addSubview(navBar)
出于某种原因,当显示任何类型的UIAlertView时,栏上的按钮会向下移动。
为什么会发生这种情况?
答案 0 :(得分:0)
不是最好的解决方案,但由于这种行为只发生在我的自定义栏按钮项(而不是我使用界面构建器创建的栏按钮项)上,我只是用" self.navBarNavItem.setRightBarButtonItems([ ],动画:真实)"在调用" presentViewController"。
之前然后,如果警报的结果(即用户选择的内容)导致停留在当前视图上(而不是更改视图),那么我会在执行该处理程序时将它们重新添加。
这使得按钮不会显示在错误的位置,然后在警报完成时将它们放回正确的位置。