2016-01-10 1 views
0

На моей основной навигацииКонтроллер есть кнопка правого бара под названием "Next Page". Когда кнопка нажата, он вызывает метод с именем "nextPage()", который инициализирует контроллер навигации и показывает его.Не создавать элементы и названия кнопок на панели навигации (iOS, Swift)

Код для nextPage() походит следующее:

func nextPage() { 
     let window = UIWindow(frame: UIScreen.mainScreen().bounds) 
     let CustomLoginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("viewControllerID") as! customVC 

     let navVC = UINavigationController.init(rootViewController: CustomLoginVC) 
     navVC.view.autoresizingMask = [.FlexibleHeight, .FlexibleWidth, .FlexibleTopMargin, .FlexibleLeftMargin] 

     navVC.navigationBar.translucent = false 
     navVC.navigationItem.title = "haha" 
     navVC.navigationBar.tintColor = UIColor.whiteColor() 
     navVC.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "AvenirNext-Medium", size: 22)!, NSForegroundColorAttributeName: UIColor.whiteColor() ] 
     navVC.navigationItem.leftBarButtonItem?.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "AvenirNext", size: 18)!], forState: UIControlState.Normal) 

     let backButton = UIBarButtonItem.init(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "backButtonPressedInPDF") 
     let exportButton = UIBarButtonItem.init(image: UIImage(named: "export"), style: UIBarButtonItemStyle.Plain, target: self, action: "saveAsPDF") 

     navVC.navigationItem.setLeftBarButtonItem(backButton, animated: false) 
     navVC.navigationItem.setRightBarButtonItem(exportButton, animated: false) 
     window.rootViewController = navVC 
     self.presentViewController(navVC, animated: true, completion: nil) 
    } 

Как вы можете видеть, я инстанцирование CustomLoginVC который является типом customVC от главного редактора. customVC является подклассом UIViewController. Затем инициализируйте UINavigationController с помощью CustomLoginVC и назначьте элементы кнопки влево и вправо. Однако элементы заголовка и кнопки на панели навигации не отображаются, как показано ниже.

enter image description here

Я не понимая, почему бар элементы кнопки и название не сделаны на навигационной панели.

Также в AppDelegate я установил метод, как следующие:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     UINavigationBar.appearance().barTintColor = UIColor(hex: "00BFA5") 
     application.statusBarStyle = UIStatusBarStyle.LightContent 

     return true 
    } 

Любые комментарии приветствуются!

ответ

1

Вы должны установить заголовок и кнопки на CustomLoginVC, а не на navVC

+0

Это сработало, когда я сделал, как вы сказали мне. Но я не понимаю, почему мне нужно установить заголовок и кнопки на CustomLoginVC, но не на navVC. Не нужно ли устанавливать кнопки и заголовок в UINavigationController? CustomLoginVC не является UINavigationController, но UIViewController – Kahsn

+1

Мы всегда устанавливаем кнопки и заголовок на соответствующем контроллере просмотра контроллера навигации. И даже методы действий для соответствующих барбютов записываются в viewcontroller, а не в контроллере навигации. Контроллер навигации - это просто держатель viewcontrollers, где можно нажать и поп –

0

Я думаю, что вы должны написать ниже три строки попробовать:

navVC.navigationItem.leftBarButtonItem = nil; 
    navVC.navigationItem.rightBarButtonItem = nil; 
    navVC.navigationItem.hidesBackButton = true; 

после этого попытаться написать:

navVC.navigationItem.setLeftBarButtonItem(backButton, animated: false) 
navVC.navigationItem.setRightBarButtonItem(exportButton, animated: false) 

ИЛИ

self.title = "Your Title" 

var homeButton : UIBarButtonItem = UIBarButtonItem(title: "LeftButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "") 

var logButton : UIBarButtonItem = UIBarButtonItem(title: "RigthButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "") 

self.navigationItem.leftBarButtonItem = homeButton 
self.navigationItem.rightBarButtonItem = logButton 
Смежные вопросы