iOS Swift导航栏按钮向下移动

时间:2015-05-01 17:21:41

标签: ios swift uinavigationbar uialertview

我使用以下代码在我的视图中添加带按钮的导航栏:

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时,栏上的按钮会向下移动。

Screen shot of problem

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

不是最好的解决方案,但由于这种行为只发生在我的自定义栏按钮项(而不是我使用界面构建器创建的栏按钮项)上,我只是用" self.navBarNavItem.setRightBarButtonItems([ ],动画:真实)"在调用" presentViewController"。

之前

然后,如果警报的结果(即用户选择的内容)导致停留在当前视图上(而不是更改视图),那么我会在执行该处理程序时将它们重新添加。

这使得按钮不会显示在错误的位置,然后在警报完成时将它们放回正确的位置。