下面我先把跟學習筆記04跟05綜合的demo發出來,要是大家有什么不明白的可以直接下載下來,看懂demo了之后就不需要再看我下面寫的東西了。可看到上層內容半透明demo
這個demo把五六個界面用push和present混用之后怎么回到根視圖,并且中間present的界面是這樣的半透明的界面,很淺顯易懂的。有啥不懂直接私信我評論問我都可以,大家一起學習。
首先先把需求說明,如圖
看界面就大概知道,需要有一個半透明的界面,可以看到上一層控制器上的內容,然后在此界面上還需要展示響應的數據等等。
我想高手的話應該會很容易的用第三方控件或者是自己寫一個彈出view來解決,但是對于新手的我來說實在是有點難啊,這個界面我研究了很久還是沒搞出來,最后決定還是要推出一個界面來實現這個功能。
那么假設上一層的界面是AViewController,銀行卡列表這個界面是BViewController。
在A彈出B的方法中。
-(void)clickToBVC
{
NSLog(@"要跳轉B界面了");
BViewController *vc = [[BViewController alloc]init];
vc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
self.definesPresentationContext = YES;
[self presentViewController:vc animated:YES completion:^{
vc.view.superview.backgroundColor = [UIColor clearColor];
}];
}
之后在B的ViewDidLoad方法中將B視圖的背景色設置成半透明就行了。
self.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3];
這就簡單的完成了半透明的界面,并且可以看到上一層視圖的內容,這里需要注意的是那個modalPresentationStyle。在這里暫時就不贅述了,如果UIModalPresentationOverCurrentContext沒有效果的話,可以換成UIModalPresentationFullScreen試一試,這里具體的我還沒有深入研究,因為這兩個我在兩個不同的地方用的時候管用,換成別的就不管用了。所以這個之后我會找機會進行深入研究后再寫一篇來說的。
那么半透明的視圖完成了,那么別的東西就容易多了,界面上添加view,然后添加列表之類的,就隨意發揮了。