Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 显示一个新的视图控制器,然后取消它,在父视图控制器上调用init()_Ios_Swift_Uitabbarcontroller_Modalviewcontroller - Fatal编程技术网

Ios 显示一个新的视图控制器,然后取消它,在父视图控制器上调用init()

Ios 显示一个新的视图控制器,然后取消它,在父视图控制器上调用init(),ios,swift,uitabbarcontroller,modalviewcontroller,Ios,Swift,Uitabbarcontroller,Modalviewcontroller,我在我的应用程序上发现了一个非常奇怪的行为,视图控制器的结构如下所示: 选项卡视图控制器包含: - NavigationController(root is HomeViewController) - NavigationController(root is SearchViewController) - NavigationController(root is ProfileViewController) 当我在HomeViewController中时,我会显示modally Premium

我在我的应用程序上发现了一个非常奇怪的行为,视图控制器的结构如下所示:

选项卡视图控制器
包含:

- NavigationController(root is HomeViewController)
- NavigationController(root is SearchViewController)
- NavigationController(root is ProfileViewController)
当我在HomeViewController中时,我会显示modally PremiumViewController

@objc func premiumTapped() {
    let premiumViewController = PremiumViewController(viewModel: PremiumViewModel(networkService: NetworkService(), purchasesService: PurchasesService.shared))
    navigationController?.present(premiumViewController, animated: true, completion: nil)
}
在这里之前一切正常。

现在我退出
PremiumViewController.

dismiss(animated: true, completion: nil)
发生的情况是
HomeViewController
调用了它的
init()
viewDidLoad()


这怎么可能
HomeViewController一直存在,为什么它再次调用init?

多亏了@rmaddy,我发现了这个问题

为了找到答案,我在一直被调用的
init()
函数中放置了一个断点。我从
TabbarViewController
中发现调用它的是
viewwillappease()


问题是,我在
viewwillappease()
上初始化了选项卡栏视图控制器,而不是在
viewDidLoad()上初始化,这使得每次出现一个视图时都要重新创建所有选项卡控制器。

HomeViewController
init
中放置一个断点,看看它叫什么。@rmaddy OMG您是最好的,非常感谢您让我在这个断点中查找第十次。我终于看到了这个问题,我正在ViewWillDisplay中的选项卡BarViewController中创建视图控制器!!该死的!非常感谢:)