2016-02-29 73 views
0

我是新来的迅速,在一个推送通知的点击,我试图打开一个VC,这里是代码添加一个UIButton到的导航栏RootViewController的

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

你不应该直接添加子视图到UINavigationBar而应该使用视图控制器的UINavigationItem并设置leftBarButtonItemrightBarButtonItem

在您的情况下,您应该添加DetailsViewControllerviewDidLoad:中的酒吧按钮项目。

例子:

navigationItem.rightBarButtonItem = instanceOfUIBarButtonItem 
+0

您好@Hugo Tunius感谢。我试过你的逻辑,但我没有看到任何按钮 – Ranjit

+0

你不能使用'UIButton'需要'UIBarButtonItem' –

+0

或者很好的customView可能实际上工作 –