我有一个简单的应用程序,用于测试其余api的推送通知。我想在应用程序中显示导航栏,但是它不起作用。在我的AppDelegate中,我有以下代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.registerForPushNotifications()
let url = "dev"
UserDefaults.standard.setValue(FFHelper.url(slug: url.slug()), forKey: "api-url")
var vcString = "loginView"
if KeychainSwift().get("auth-token") != nil {
vcString = "notificationsTable"
}
let initialVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: vcString)
initialVC.navigationController?.navigationBar.isHidden = false
initialVC.navigationController?.setNavigationBarHidden(false, animated: true)
window?.rootViewController = initialVC
window?.makeKeyAndVisible()
return true
}
Run Code Online (Sandbox Code Playgroud)
在情节提要中,导航栏也已启用:
最后,在viewController中,我做同样的事情:
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: animated)
self.navigationController?.navigationBar.isHidden = false
super.viewWillAppear(animated)
}
Run Code Online (Sandbox Code Playgroud)
您正在显示vcString是您的LoginVC ,
您需要使用NavigationController标识符,例如loginView 或
您需要NavigationControler在演出前 嵌入
let initialVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: vcString)
let navi = UINavigationController.init(rootViewController: initialVC)
Run Code Online (Sandbox Code Playgroud)
和
window?.rootViewController = navi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2892 次 |
| 最近记录: |