標籤:模態視圖 push pop
導航控制器用來管理一組具有層級關係的視圖控制器,進入下一個介面的方式是push,返回是pop. (層級關係:後一個介面顯示的內容依賴於前一個介面)
當沒有層級關係的視圖控制器之間切換時(比如:前一個介面顯示的內容依賴於後一個介面).要使用模態視圖,進入下一個介面的方式是present,返回是dismiss.
模態視圖:
- (IBAction)pressButton:(UIButton *)btn
{
FirstDetailViewController *firstDetailVC = [[FirstDetailViewController alloc] init];
firstDetailVC.modalTransitionStyle =UIModalTransitionStyleFlipHorizontal;
[self presentViewController:firstDetailVC animated:YES completion:^{
NSLog(@"Tsummer");
}];
}
- (IBAction)pressDetailButton:(UIButton *)sender
{
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"Tsummer");
}];
}
系統提供的頁面切換的效果:
typedef NS_ENUM(NSInteger, UIModalTransitionStyle) {
UIModalTransitionStyleCoverVertical = 0, //從底部劃入
UIModalTransitionStyleFlipHorizontal, //水平翻轉
UIModalTransitionStyleCrossDissolve, //交叉溶解
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_3_2
UIModalTransitionStylePartialCurl, //翻頁效果
#endif
};
push推出
- (IBAction)pressButton:(UIButton *)btn
{
FirstDetailViewController *firstDetailVC = [[FirstDetailViewController alloc] init];
[self.navigationController pushViewController:firstDetailVC animated:YES];
}
- (IBAction)pressDetailButton:(UIButton *)sender
{
[self.navigationController popViewControllerAnimated:YES];//pop上一介面
// [self.navigationController popToRootViewControllerAnimated:YES];//pop主視圖控制器介面
// [self.navigationController popToViewController:(UIViewController *) animated:YES];//當存在多個頁面時,自訂pop到哪一個頁面
}
模態視圖 push pop