gpt4 book ai didi

objective-c - Objective-C : Executing a command in tabbar immediately before switching away

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

我在标签栏 Controller 中有 2 个标签栏,每个标签栏都有一个导航 Controller 。根据给定的操作,我想在一个命令中执行一个命令,在另一个命令中执行一个命令。示例:

// in my current tabbar, pop back to root view
[self.navigationController popToRootViewControllerAnimated:YES];

// go to the first tab bar
self.tabBarController.selectedViewController
= [self.tabBarController.viewControllers objectAtIndex:0];

单独执行时,上面的代码有效。但是,按照上面的顺序排列时,只有第一个命令被执行,而第二个命令没有被执行。

奇怪的是,当我切换顺序时,它起作用了。

这里发生了什么导致这两种不同的情况?

最佳答案

一旦你这样做,

[self.navigationController popToRootViewControllerAnimated:YES];

您正在从导航堆栈中分离 View Controller 。这会将 navigationController 属性设置为 nil,因为它不再属于该堆栈。该属性包含有效值是不合适的。

同样的事情也适用于 tabBarController 属性。只要导航 Controller 是选项卡栏 Controller 的一部分或者它是该导航 Controller 的一部分,就会设置它。这在该语句的末尾也设置为 nil

切换语句将起作用,因为它不会改变导航堆栈,直到您的任务完成。

关于objective-c - Objective-C : Executing a command in tabbar immediately before switching away,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6382741/

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