如何在推送UINavigationController之后向UINavigationBar添加编辑按钮

时间:2016-03-12 02:28:04

标签: swift uitableview uinavigationcontroller uikit

我想在导航控制器上按下这个新表格视图后,将表格视图的编辑按钮添加到导航控制器的导航栏。当我这样做时,编辑按钮不会出现(我怀疑“后退”按钮会遮挡它),当我回到层次结构时,它就是,但现在我有两个(编辑编辑)。我的源代码:

items.navigationItem.rightBarButtonItem = items.editButtonItem()

修改

如果我注释掉上面的最后一行,并在推送之前插入以下行,则编辑按钮会出现在左侧,但现在没有后退按钮:

    var items = navigationItem.rightBarButtonItems
    if items == nil {
        items = [UIBarButtonItem]()
    }
    items! += [ editButtonItem() ]
    navigationItem.rightBarButtonItems = items

我在ItemsController()的viewDidLoad()中使用的解决方案:

{{1}}

1 个答案:

答案 0 :(得分:1)

UINavigationItem的左右栏按钮都可以表示为单个barButtonItembarButtonItems数组。您需要访问并设置后者(添加按钮而不是仅替换Back按钮)。要在同一个viewController中执行此操作,请使用以下代码:

if var leftBarButtonItems = self.navigationItem.leftBarButtonItems{
            leftBarButtonItems.append(self.editButtonItem())
            self.navigationItem.leftBarButtonItems = leftBarButtonItems
        }

但是,如果可能的话,我会使用上面的代码将Edit按钮放在右侧,因为这就是预期的位置。