setRightBarButtonItems不起作用

Dus*_*Sun 2 uinavigationitem ios swift

我想在一个右侧有2个按钮UINavigationBar.以下是源代码.没有错误,但也没有按钮.这是一个UIViewController,而不是一个UINavigationViewController

let buttonEdit: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
buttonEdit.frame = CGRectMake(0, 0, 40, 40)
buttonEdit.setImage(UIImage(named:"me44.png"), forState: UIControlState.Normal)
buttonEdit.addTarget(self, action: "rightNavItemEditClick:", forControlEvents: UIControlEvents.TouchUpInside)
var rightBarButtonItemEdit: UIBarButtonItem = UIBarButtonItem(customView: buttonEdit)

let buttonDelete: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
buttonDelete.frame = CGRectMake(0, 0, 40, 40)
buttonDelete.setImage(UIImage(named:"me44.png"), forState: UIControlState.Normal)
buttonDelete.addTarget(self, action: "rightNavItemDeleteClick:", forControlEvents: UIControlEvents.TouchUpInside)

var rightBarButtonItemDelete: UIBarButtonItem = UIBarButtonItem(customView: buttonDelete)

// add multiple right bar button items       
self.navigationController?.navigationItem.setRightBarButtonItems([rightBarButtonItemDelete, rightBarButtonItemEdit] as [AnyObject], animated: true)

//I also tried code below no luck either
self.navigationItem.setRightBarButtonItems([rightBarButtonItemDelete, rightBarButtonItemEdit] as [AnyObject], animated: true)
Run Code Online (Sandbox Code Playgroud)

mat*_*att 7

这段代码错了:

self.navigationController?.navigationItem.setRightBarButtonItems(
    [rightBarButtonItemDelete, rightBarButtonItemEdit] as [AnyObject], animated: true)
Run Code Online (Sandbox Code Playgroud)

你没有设置导航控制器navigationItem; 你设置了你的 navigationItem.而且,[AnyObject]事情是不必要的.所以:

self.navigationItem.setRightBarButtonItems(
    [rightBarButtonItemDelete, rightBarButtonItemEdit], animated: true)
Run Code Online (Sandbox Code Playgroud)

但请注意,仅当您的视图控制器是UINavigationController的子级时才有效.设置视图控制器navigationItem仅在该情况下自动填充导航栏.如果您处于这种情况 - 即,如果您的界面中只有一个"松散"的导航栏 - 您需要手动填充导航栏(通过设置 navigationItem).

(另请注意,如果您没有"me44.png"图像,可能是您的代码正在运行,但您只是没有看到任何内容.)