0
我想加載我的視圖控制器一個navItem.rightBarButtonItem
並根據一組情況更改爲另一個。看起來好像我只能加載一次,在viewDidLoad
。更改圖標後是否有更新酒吧按鈕項目的方法?重新加載UINavigationItem
func viewDidLoad() {
var iconOne = UIImage(named: "button")
let buttonOne = UIBarButtonItem(image: iconOne, style: UIBarButtonItemStyle.Plain, target: self, action: "funcOne")
self.navItem.rightBarButtonItem = buttonOne
//perform async query, if a condition holds true then:
var iconTwo = UIImage(named: "buttonTwo")
let buttonTwo = UIBarButtonItem(image: iconTwo, style: UIBarButtonItemStyle.Plain, target: self, action: "funcTwo")
self.navItem.rightBarButtonItem = buttonTwo
}
全碼:
override func viewDidLoad() {
super.viewDidLoad()
// Sets custom nav bar view so we can add multiple bar buttons
navBar = UINavigationBar(frame: CGRectMake(0, 20, UIScreen.mainScreen().bounds.size.width, 44))
navBar.barTintColor = UIColor.blackColor() // Sets bar to black
navBar.translucent = false
self.view.addSubview(navBar)
navItem = UINavigationItem(title: "\(name)") // Sets title
navBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "Helvetica Neue", size: 25)!, NSForegroundColorAttributeName: UIColor.whiteColor()]
// Set icons
var backIcon = UIImage(named: "backButton")
let backButton = UIBarButtonItem(image: backIcon, style: UIBarButtonItemStyle.Plain, target: self, action: "backButton")
navItem.leftBarButtonItem = backButton
var userQuery = PFQuery(className: "Followers")
userQuery.whereKey("following", equalTo: username)
userQuery.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
if error == nil {
if let objects = objects {
for object in objects {
if let follower = object["follower"] as? String {
if follower == PFUser.currentUser()!.username! {
var followingIcon = UIImage(named: "followingButton")
let followingButton = UIBarButtonItem(image: followingIcon, style: UIBarButtonItemStyle.Plain, target: self, action: "unfollowUser")
self.navItem.rightBarButtonItem = followingButton
self.navItem.rightBarButtonItem?.tintColor = UIColor.orangeColor()
} else {
var followIcon = UIImage(named: "followButton")
let followButton = UIBarButtonItem(image: followIcon, style: UIBarButtonItemStyle.Plain, target: self, action: "followUser")
self.navItem.rightBarButtonItem = followButton
self.navItem.rightBarButtonItem?.tintColor = UIColor.darkGrayColor()
}
}
}
}
} else {
println(error)
}
})
您的代碼正在工作..那麼問題是什麼? – iRiziya
@FrequencyMatched這不起作用。只有'buttonOne'加載。如果我嘗試在異步函數後將其更改爲'buttonTwo',則不會加載'buttonTwo'。 – chicobermuda
你能粘貼完整的代碼嗎? – iRiziya