首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新加载UINavigationItem

重新加载UINavigationItem
EN

Stack Overflow用户
提问于 2015-07-21 04:39:35
回答 1查看 148关注 0票数 0

我希望用一个navItem.rightBarButtonItem加载我的视图控制器,并根据一组情况将它更改为另一个。似乎我只能在viewDidLoad上加载一次。在更改图标后,是否有更新bar按钮项的方法?

代码语言:javascript
复制
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
}

完整代码:

代码语言:javascript
复制
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)
                }
            })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-21 07:57:06

我不确定这是否可能。因此,我创建了自己的自定义视图,每个条形按钮项目都在那里。我在var rightButton = UIButton(frame: CGRectMake(UIScreen.mainScreen().bounds.width - 50, 25, 30, 30))设置了右边的bar按钮项,添加了一个操作,并将子视图添加到视图中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31530498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档