navigation item 2 中做一些操作。当我单击按钮时,我想转到选项卡栏项目 1,但同时我希望将第二个选项卡-6ren">
gpt4 book ai didi

iphone - 出现异常 "message sent to deallocated instance"

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

我在标签栏项目 2 上有导航 Controller 。我在标签栏 item 2->navigation item 2 中做一些操作。当我单击按钮时,我想转到选项卡栏项目 1,但同时我希望将第二个选项卡中的导航 Controller 设置为其 Root View Controller 。我试过以下:

            [self.tabBarController setSelectedIndex:0];
[self.navigationController popToRootViewControllerAnimated:NO];

但是当我从选项卡 1 回到选项卡 2 时。它给了我异常(exception):“消息发送到已释放的实例”。实现这一目标的正确方法是什么?

最佳答案

选择第一个选项卡:

[self.tabBarController setSelectedIndex:0];

切换选项卡的 Root View Controller :

要实现此目的,您必须使用 UITabBarBontroller 的 委托(delegate)方法来弹出到 rootviewcontroller。

将其写入AppDelegate

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{

if (tabBarController.selectedIndex==1) {
//only for tab number 2
if ([viewController isKindOfClass:[UINavigationController class]]) {

UINavigationController *navController = (UINavigationController *)viewController ;
[navController popToRootViewControllerAnimated:NO];
}
}

}

附言不要忘记在 AppDelegate.h 中添加 UITabBarControllerDelegate

关于iphone - 出现异常 "message sent to deallocated instance",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19270141/

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