![](/img/trans.png)
[英]how to send data from UIViewController to UITabBarControllers first tab in swift ios
[英]iOS - go to second uiviewcontroller of some tab from another tab
我正在使用Storyboard開發iOS 5應用。
我有3個選項卡的UITabBarController
。 每個選項卡都有其自己的UINavigationController
。 第一個選項卡的UINavigationController
具有一個與另一個UIViewController
等連接的UITableViewController
。第二個選項卡的UINavigationController
僅具有一個UIViewController
。
我要實現的是,當第二個選項卡的UIViewController
中發生某些動作時,導航到UIViewController
(第一個選項卡的UINavigationController
的第二個視圖)。
我已經嘗試使用推播功能來完成此操作,但隨后導航堆棧與不同選項卡的視圖控制器混合在一起(目標視圖控制器中的后退按鈕指向另一個選項卡的視圖控制器)。
因此,我想知道在不同選項卡的視圖控制器之間完成這種轉換的“正確方法”是什么。
任何幫助將不勝感激。
您不能使用通知,因為第一個選項卡的第一個viewController甚至可能不會加載。
因此,您可以使用的一種方法是保存一個首選項(也許是nsuserdefaults),然后將選項卡切換到第一個選項卡,然后在第一個選項卡的第一個viewController中,在viewDidAppear或viewWillAppear中檢查此首選項,如果已設置,則重置該首選項(下一次)並自動導航(推送)到第二個viewController。
BOOL shouldAutoPush=YES;
[[NSUserDefaults standardUserDefaults] shouldAutoPush forKey:@"shouldAutoPush"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self.tabBarController setSelectedIndex:0];
-(void)viewWillAppear:(BOOL)animated {
if ( [[NSUserDefaults standardUserDefaults] objectForKey:@"shouldAutoPush"] ) {
BOOL shouldAutoPush=NO;
[[NSUserDefaults standardUserDefaults] shouldAutoPush forKey:@"shouldAutoPush"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self.navigationController pushViewController:secondViewController animated:YES];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.