На моей основной навигацииКонтроллер есть кнопка правого бара под названием "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
и назначьте элементы кнопки влево и вправо. Однако элементы заголовка и кнопки на панели навигации не отображаются, как показано ниже.
Я не понимая, почему бар элементы кнопки и название не сделаны на навигационной панели.
Также в AppDelegate
я установил метод, как следующие:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UINavigationBar.appearance().barTintColor = UIColor(hex: "00BFA5")
application.statusBarStyle = UIStatusBarStyle.LightContent
return true
}
Любые комментарии приветствуются!
Это сработало, когда я сделал, как вы сказали мне. Но я не понимаю, почему мне нужно установить заголовок и кнопки на CustomLoginVC, но не на navVC. Не нужно ли устанавливать кнопки и заголовок в UINavigationController? CustomLoginVC не является UINavigationController, но UIViewController – Kahsn
Мы всегда устанавливаем кнопки и заголовок на соответствующем контроллере просмотра контроллера навигации. И даже методы действий для соответствующих барбютов записываются в viewcontroller, а не в контроллере навигации. Контроллер навигации - это просто держатель viewcontrollers, где можно нажать и поп –