應用要求:底層是tabbarController,tabbar中的controller是navigationController筛峭,彈出一個透明的模態(tài)視圖遮住全屏幕豆茫,包括底部的tabbar和頂部的navigationBar诈豌,按照http://www.reibang.com/p/bf3325111fe5的解決方案可以解決遮擋navigationBar的問題征绸,
代碼為:
self.tabBarController.definesPresentationContext = YES;
segue.destinationViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;
但是上述代碼不能解決遮擋tabbar的問題黔姜,根據http://siroccoicode.club/?p=209的思路凄诞,我結合了上述兩個作者的方案,最終解決代碼如下:
AppDelegate *appdelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
UIViewController *view = [[UIViewController alloc]init];
appdelegate.window.rootViewController.definesPresentationContext = YES;
view.modalPresentationStyle = UIModalPresentationOverCurrentContext;
[appdelegate.window.rootViewController presentViewController:view animated:YES completion:^{
view.view.backgroundColor=[UIColor colorWithRed:237/255.0 green:236/255.0 blue:244/255.0 alpha:0.5];
}];
就是利用AppDelagate獲得一個rootController,在rootController上操作由桌。在此分享給大家为黎!
在此感謝上述兩位作者提供的思路邮丰。