创建方法将根据状态更新您的按钮 self.isFavourited
var isFavourited = false;//declare this above the viewDidload() func updateRighBarButton(isFavourite : Bool){ let btnFavourite = UIButton(frame: CGRectMake(0,0,30,30)) btnFavourite.addTarget(self, action: "btnFavouriteDidTap", forControlEvents: .TouchUpInside) if isFavourite { btnFavourite.setImage(UIImage(named: "star_filled"), forState: .Normal) }else{ btnFavourite.setImage(UIImage(named: "star"), forState: .Normal) } let rightButton = UIBarButtonItem(customView: btnFavourite) self.navigationItem.setRightBarButtonItems([rightButton], animated: true) } func btnFavouriteDidTap() { //do your stuff self.isFavourited = !self.isFavourited; if self.isFavourited { self.favourite(); }else{ self.unfavourite(); } self.updateRighBarButton(self.isFavourited); } func favourite() { //do your favourite stuff/logic } func unfavourite(){ //do your unfavourite logic }
在viewDidload方法中,第一次调用,即
self.updateRighBarButton(self.isFavourited);//first time self.isFavourited will be false