iOS處理跳轉(zhuǎn)
項目中有一些需要跳轉(zhuǎn)界面,整理一下不同的跳轉(zhuǎn)。
- 我的項目中有tabbar有4個選項侍筛,
- 每個界面進(jìn)入基本都有網(wǎng)絡(luò)請求
第一種——跳轉(zhuǎn)到某一個tabbar的主頁
/** 跳轉(zhuǎn)到首頁 */
- (void)goToHomeView
{
//index從 0 開始,我這里有4個tabbar,就是0,1,2,3
self.navigationController.tabBarController.selectedIndex = 0;
}
第二種——跳轉(zhuǎn)到某個界面(之前打開過梳码、未打開過)
注:我第一個控制器為A,點擊打開了B界面(B是一個list)伍掀,打開list某一個界面C之后掰茶,里面還需要跳轉(zhuǎn)D界面,在D界面操作之后硕盹,需要跳轉(zhuǎn)到B界面符匾,如果我們pop的話就是到C界面了,這里就需要用到navigationController的棧操作瘩例,
//D界面的跳轉(zhuǎn)返回B界面
- (void)popView {
if ([self.navigationController.viewControllers[0] isKindOfClass:[A class]])
{
B *dev = self.navigationController.viewControllers[1];
[self.navigationController popToViewController:dev animated:YES];
} else {
[self.navigationController popToRootViewControllerAnimated:NO];
[[NSNotificationCenter defaultCenter]postNotificationName:@"PUBFanhui" object:nil];
}
}
由于我的D界面還有別的入口啊胶,(棧頂可能不是A,所以做了下判斷)用了通知的辦法去進(jìn)行跳轉(zhuǎn)
(下面這部分代碼是寫在繼承自UITabBarController的控制器里面垛贤,在這里設(shè)置這個通知的好處是你初始化tabbar的時候焰坪,就定義這個通知了,這部分屬于一個整體聘惦。
如果不在這里某饰,部分代碼需要修改。)
如果你有好的辦法善绎,可以交流黔漂,謝謝
//在viewDidLoad里面添加通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(tiaozhuan) name:@"PUBFanhui" object:nil];
- (void)tiaozhuan
{
//我的A界面是處于最后一個tabbar的,這個控制器是繼承UITabBarController禀酱,所以直接self.selectedIndex,
self.selectedIndex = 3;
MainNavigationController *nav =self.viewControllers[3];
[nav pushViewController:[[MyProgectTableViewController alloc] init] animated:NO];
}
最后說一下炬守,上面第二種方法中,通知的那個跳轉(zhuǎn)一般不推薦用剂跟,我們這邊只是實現(xiàn)了一些簡單跳轉(zhuǎn)的减途,太深入的跳轉(zhuǎn)都給產(chǎn)品推了,沒有實現(xiàn)曹洽,朋友們?nèi)绻泻玫霓k法鳍置,可以給說一下。謝謝
轉(zhuǎn)自:http://blog.csdn.net/sjl_leaf/article/details/50387637