gpt4 book ai didi

iphone - 如何从其他标签推送标签栏中的其他 View ?

转载 作者:行者123 更新时间:2023-11-28 23:09:54 24 4
gpt4 key购买 nike

我有标签栏——两个标签,每个标签都有导航 Controller 。在第二张卡上我更改了数据库,所以我需要刷新第一张卡上的数据(我知道 viewWillAppear)。但是有导航 Controller ,我可以查看它的下一个 View 。

(不幸的是,我有带导航栏的标签栏,静态连接 - 通过 .XIB)

如何在第一个选项卡(从第二个选项卡)的导航 Controller 中返回到第一个 View ?或者我如何在其上推送其他 View ,但又不破坏导航 Controller ?

最佳答案

您需要将第一个标签栏中的导航 Controller 弹出到根目录,[firstTabBarViewController.navigationController popToRootViewControllerAnimated:NO];

唯一的问题是您需要引用您的第一个选项卡 View Controller 。

另一种方法(我以前用过这种方法)是使用本地通知。

在您的第一个 View Controller viewDidLoad 方法中添加以下行以注册通知,您可以将通知命名为任何您喜欢的名称,例如 DatabaseChangedNotification。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(databaeHasChanged:) name:@"DatabaseChangedNotification" object:nil]; 

然后添加一个名为 databaseHasChanged 的​​新(void)方法,每次引发通知时都会调用此方法。您的 databaseHasChanged 方法应该类似于:

-(void)databaseHasChanged
{
[self.navigationController popToRootViewControllerAnimated:NO];
}

然后在您的 dealloc 方法中确保使用以下代码注销通知:

   [[NSNotificationCenter defaultCenter] removeObserver:self];

以上代码将设置您的第一个 View Controller 来监听和处理 DatabaseChangedNotification。

现在您需要做的就是向您的第二个 View Controller 添加一些代码来更改数据库。数据库更改后,只需使用以下代码触发 DatabaseChangedNotification:

[[NSNotificationCenter defaultCenter] postNotificationName:@"DatabaseChangedNotification"
object:nil];

关于iphone - 如何从其他标签推送标签栏中的其他 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8573320/

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