1. 程式人生 > >ios開發:怎麼實現點選一個按鈕,跳轉到一個新的介面,並回退到上一介面

ios開發:怎麼實現點選一個按鈕,跳轉到一個新的介面,並回退到上一介面

iOS三種檢視切換的原理各不相同:
UITabBarController:以平行的方式管理檢視,各個檢視之間往往關係並不大,每個加入到UITabBarController的檢視都會進行初始化即使當前不顯示在介面上,相對比較佔用記憶體。
UINavigationController:以棧的方式管理檢視,各個檢視的切換就是壓棧和出棧操作,出棧後的檢視會立即銷燬。
UIModalController:以模態視窗的形式管理檢視,當前檢視關閉前其他檢視上的內容無法操作。
1.可以使用導航控制器棧。
微博專案中就是用到這種方法
將當前檢視控制器作為rootViewController.需要在建立當前控制器的程式碼中這樣來建立
UIViewController *vc1=[[UIViewControlelr alloc] init];
UINavigationController *navController =[[UINavigationController alloc] initWithRootViewController:vc1];
[vc1 release];
[window addSubView:navController.view];
[navController release];

只有噹噹前控制器在導航控制器棧中才可以使用pushViewController來導航其它檢視
導航到新的檢視控制器:
UIViewController *vc2=[[ViewController alloc] init];
[self.navigationController pushViewController:vc2 animated:YES];
[vc2 release];
當返回上一介面時,可以參考微博介面的返回;
2.模態檢視
UIViewController *vc2=[[ViewController alloc] init];
[self presentModalViewController:controller animated:YES];

退出參考WFCoreText

[selfdismissViewControllerAnimated:YEScompletion:NULL];


3.使用新的檢視覆蓋當前檢視
如果使用這種方式,建議建立一個可維護控制器之間互動的控制器swithController,在這個控制器中來實現不同控制器之間的檢視切換
@inertface SwitchViewController:UIViewController
@property(retain) UIViewController *vc1
@property (retain) UIViewController *vc2;

-(void)showVC1;
-(void)showVC2;
@end

@implementation SwitchViewController
@synthesize vc1,vc2;

-(void)showVC1 {
       if (vc2) {
              [vc2.view removeFromSuperView];
      }
      
     [self.view addSubView:vc1.view];
}
@end