當(dāng)我們自己創(chuàng)建了一個自定義的tabBar,通過push跳轉(zhuǎn)頁面的時候,會發(fā)現(xiàn)tabBar沒有像我們所希望的那樣隱藏起來。
然后,我們通過hide來隱藏我們的tabBar,又會遇到第二個問題,tabBar的出現(xiàn)和消失會很突兀,并不是我們所想要的。
有的人提出用,hidesBottomBarWhenPushed來控制,第三個問題來了,我們自定義的tabBar跟系統(tǒng)的tabBar沒有關(guān)系啊擂仍。
以上的問題我曾經(jīng)也遇到過,然后解決了,下面我就分享下我的解決思路。
Step 1 push
Step 2 截屏
Step 3 隱藏tabBar
Step 4 返回
Step 5 viewDidAppear
1.push
一個很常見的Nav push,直接push過去就可以了
2.截取屏幕
在push過之前,我們需要截取一張圖片,也就是push過去之前,控制器的狀態(tài)。
我們將這個圖片覆蓋在前一個控制上悄雅,這樣的話,當(dāng)你pop返回的時候,也會看到這張圖片。
/** * 截取屏幕的方法 */
- (void)cutScreem{
UIGraphicsBeginImageContextWithOptions(self.tabBarController.view.bounds.size, YES, 0.0);
// 截取層的畫面
[self.tabBarController.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// 將圖片給鋪滿整個視圖
self.backImageView.image = image;
}
3.隱藏tabBar
在下一個控制器中,viewDidLoad隱藏自定義控制器告组。
4.返回
在iOS 7.0 之后,Nav返回有兩種:
第一種是點擊返回按鈕煤伟,第二種是屏幕側(cè)滑返回
5.viewDidAppear
以上的都是為了針對第二種返回的解決方案。
在返回到上一層控制器的時候:
第一步, 我們先要移除覆蓋在上面ImageView。
第二步, 我們要使我們的自定義tabBar出現(xiàn)便锨。