gpt4 book ai didi

iOS - NavigationController 认为同一个 Controller 被推了两次

转载 作者:行者123 更新时间:2023-11-29 11:20:55 25 4
gpt4 key购买 nike

我对下面的代码有点困惑。如果我注释掉第二条语句,它会成功显示 View :

MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

delegate.navController.viewControllers = [NSArray arrayWithObject:aViewController];

[delegate.navController pushViewController:aViewController animated:YES];

[aViewController release];

否则,它会在以下情况下崩溃:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported 

我在应用委托(delegate)中添加了一个不同的 View Controller ,但不是这个。是什么让它认为它是同一个?

最佳答案

delegate.navController.viewControllers = [NSArray arrayWithObject:aViewController];

[delegate.navController pushViewController:aViewController animated:YES];

第一行将 aViewController 设置为 navController 的唯一 Controller 。第二行再次将 aViewController 推送到 navController 所以是的,难怪你得到它两次。根据您想要执行的操作,放弃这两行中的一行。

如果您想将 aViewController 设置为 navController 上的唯一 Controller ,请保留第一行。

如果你想将 aViewController 作为新 Controller 推送到 navController 上,请保留第二行。

关于iOS - NavigationController 认为同一个 Controller 被推了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7224772/

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