Вам необходимо вставить контроллер навигации в первой панели вкладок в корневой каталог, [firstTabBarViewController.navigationController popToRootViewControllerAnimated: NO];
Единственная проблема с этим - вам нужна ссылка на ваши первые контроллеры представления вкладок.
Другой способ сделать это (и я уже использовал этот метод) - использовать локальные уведомления.
В вашем первом методе view view контроллеров viewDidLoad добавьте следующую строку, чтобы зарегистрировать уведомление, вы можете назвать уведомление как угодно, например, DatabaseChangedNotification.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(databaeHasChanged:) name:@"DatabaseChangedNotification" object:nil];
Затем добавьте новый (void) метод с именем databaseHasChanged, этот метод будет вызываться каждый раз при получении уведомления. Ваш метод databaseHasChanged должен выглядеть примерно так:
-(void)databaseHasChanged
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
Затем в вашем методе dealloc убедитесь, что вы отменили уведомление, используя следующий код:
[[NSNotificationCenter defaultCenter] removeObserver:self];
Приведенный выше код настроит ваш первый контроллер представления для прослушивания и обработки DatabaseChangedNotification.
Теперь все, что вам нужно сделать, это добавить некоторый код в ваш второй контроллер представления, который изменяет базу данных. После того, как база данных изменилась, просто запустите DatabaseChangedNotification, используя следующий код:
[[NSNotificationCenter defaultCenter] postNotificationName:@"DatabaseChangedNotification"
object:nil];