gpt4 book ai didi

iOS:了解导航推送后何时加载两个 View Controller 的最佳实践

转载 作者:行者123 更新时间:2023-11-28 23:53:14 25 4
gpt4 key购买 nike

我有一个显示多个屏幕的 iOS 应用程序,并且具有适用于 iPhone 和 iPad 的不同根 Controller 。这是一个简化的示例代码,用于显示正在发生的事情。

if (iPad) {
self.sideMenuController = [LGSideMenuController sideMenuControllerWithRootViewController:viewControllerA
leftViewController:viewControllerB
rightViewController:nil];
} else {
self.sideMenuController = [LGSideMenuController sideMenuControllerWithRootViewController:viewControllerB
leftViewController:viewControllerA
rightViewController:nil];
}

[self.navigationController pushViewController:self.sideMenuController animated:NO];

我需要能够判断两个 Controller (ViewControllerA 和 ViewControllerB)何时加载。

我已经实现了以下委托(delegate)

   - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (self.viewControllerA.viewIfLoaded.window != nil && self.viewControllerB.viewIfLoaded.window != nil) {
// do stuff after both controllers have been loaded and it is current view.
}
}

委托(delegate)解决方案有效,但不确定它是否是最佳实践。我检查 viewControllerAviewControllerB 是否不是 nil 和当前 View Controller ,因为我将其他 Controller 推送到导航 Controller 中,如果发生这种情况,我不想执行任何操作。

最佳答案

它看起来很脆弱。你做了很多假设,而不是(据我所知)向导航 Controller 询问你真正想知道答案的问题。这个问题是(据我所知):

  • 刚刚被推送的 View Controller 是 VCA 还是 VCB 之一?
  • 那对中的other已经是导航 Controller 的 child 了吗?

关于iOS:了解导航推送后何时加载两个 View Controller 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com