Я пытался прочитать несколько потоков в Stackoverflow, но я думаю, что я реализовал все из них, но все же это не работает.вот моя раскадровка
, поэтому я скрываю (снимаю флажок) видимость панели навигации, как на рисунке ниже, потому что я хочу реализовать свой собственный заголовок навигации'как на изображении выше (справа):
, и когда нажимается кнопка возврата, я использую код ниже:
self.navigationController?.popViewController(animated: true)
но, к сожалению, после того, как я проверил, контроллер навигации имеет нулевое значение, и я не могу вернуться к предыдущему VC.
Я установил некоторый код в делегате приложения, как этот, чтобы настроить навигацию.если пользователь уже выполнил вход в систему, он будет перемещен в HomeVC (главная панель вкладок), в противном случае он будет перенаправлен в последовательность входа в систему, как в приведенной выше раскадровке
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// to print Local Database Location, uncomment the line below if you want to trace the location of Realm Database / User Default
// print("Location of Realm Database: \(Realm.Configuration.defaultConfiguration.fileURL)")
checkHasLoggedInOrNot()
return true
}
}
extension AppDelegate {
// MARK: - Helper Methods
func checkHasLoggedInOrNot() {
let userHasLoggedIn = AuthService.shared.hasLoggedIn
if userHasLoggedIn {
goToMainTabBar()
} else {
goToAuthVC()
}
}
}
extension AppDelegate {
// MARK: - Navigation
func goToMainTabBar() {
let storyboard = UIStoryboard(name: StoryBoardName.Main.rawValue, bundle: nil)
let mainTabBar = storyboard.instantiateViewController(withIdentifier: MainStoryboardData.StoryBoardID.MainTabBar.rawValue)
window?.rootViewController = mainTabBar
}
func goToAuthVC() {
let storyboard = UIStoryboard(name: StoryBoardName.Auth.rawValue, bundle: nil)
let authVC = storyboard.instantiateViewController(withIdentifier: AuthStoryboardData.StoryBoardID.AuthVC.rawValue)
window?.rootViewController = authVC
}
}
, возможно, проблема в приведенном ниже коде?
func goToAuthVC() {
let storyboard = UIStoryboard(name: StoryBoardName.Auth.rawValue, bundle: nil)
let authVC = storyboard.instantiateViewController(withIdentifier: AuthStoryboardData.StoryBoardID.AuthVC.rawValue)
window?.rootViewController = authVC
}
потому что он указывает на AuthVC?не к навигационному контроллеру?
что здесь не так?