您需要将第一个标签栏中的导航控制器弹出到根目录,[firstTabBarViewController.navigationController popToRootViewControllerAnimated:NO];
唯一的问题是您需要引用您的第一个选项卡视图控制器。
你可以做的另一种方法(我以前用过这种方法)是使用本地通知。
在您的第一个视图控制器 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];
上面的代码将设置你的第一个视图控制器来监听和处理 DatabaseChangedNotification。
现在您需要做的就是向您的第二个视图控制器添加一些代码来更改数据库。数据库更改后,只需使用以下代码触发 DatabaseChangedNotification:
[[NSNotificationCenter defaultCenter] postNotificationName:@"DatabaseChangedNotification"
object:nil];