将UIButton添加到RootViewController的navigationBar

时间:2016-02-29 14:25:35

标签: ios swift uinavigationcontroller swift2 uiwindow

我是swift的新手,点击推送通知,我试图打开一个VC,这里是代码

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)

        let detailVC = mainStoryboard.instantiateViewControllerWithIdentifier("DetailsViewController") as! DetailsViewController

        detailVC.eventId = eventId

        let navigationController = UINavigationController(rootViewController:detailVC)


                let myButton = UIButton()
                myButton.titleLabel!.frame = CGRectMake(15, 54, 300, 500)
                myButton.titleLabel!.text = "Button Label"
                myButton.titleLabel!.textColor = UIColor.redColor()
                myButton.titleLabel!.textAlignment = .Center
              navigationController.navigationBar.addSubview(myButton)

        self.window?.rootViewController = navigationController

现在VC打开导航栏顶部,但我没有看到任何添加按钮。所以我想知道我出错的地方。

基于@Hugo reponse

我更新了viewDidLoad中的代码

let btnName = UIButton()
        //btnName.setImage(UIImage(named: "imagename"), forState: .Normal)
        btnName.titleLabel?.text = "Test"
        btnName.titleLabel?.textColor = UIColor.whiteColor()
        btnName.frame = CGRectMake(0, 30, 30, 30)
        btnName.addTarget(self, action: Selector("action"), forControlEvents: .TouchUpInside)

        //.... Set Right/Left Bar Button item
        let rightBarButton = UIBarButtonItem()
        rightBarButton.customView = btnName

        self.navigationItem.rightBarButtonItem = rightBarButton

但仍然没有运气

此致 兰吉特

1 个答案:

答案 0 :(得分:1)

您不应该直接向UINavigationBar添加子视图,而应该使用视图控制器的UINavigationItem并设置leftBarButtonItemrightBarButtonItem。< / p>

在您的情况下,您应该在viewDidLoad:的{​​{1}}中添加条形按钮项。

示例:

DetailsViewController