標籤:
在頁面跳轉時,若想用pushViewController,則必須在AppDelegate設定UINavigationController,否則pushViewController無效。
並且用pushViewController從A跳往B後,在B頁面內建“Back”按鈕返回上一頁。類似於
這樣設定,在AppDelegate中
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 2 self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]]; 3 UIViewController *controllerA = [[ViewController alloc]init]; 4 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:controllerA]; 5 6 self.window.rootViewController = nav; 7 [self.window makeKeyAndVisible]; 8 9 return YES;10 }
在controllerA中的跳轉頁面方法中這樣寫
-(void)turnToOtherController{ ControllerB *controllerB = [[ControllerB alloc]init]; [self.navigationController pushViewController:controllerB animated:YES];}
這樣,導航條就會一直存在。若不想要導航條,那麼在AppDelegate這樣寫
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {2 self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];3 UIViewController *controllerA = [[ViewController alloc]init];4 self.window.rootViewController = controllerA;5 [self.window makeKeyAndVisible];6 7 return YES;8 }
而下面這種方法是通用的,無需設定rootViewController。
[self presentViewController:mainView animated:YES completion:nil];//controller內建的屬性
下面的則需要
[self.navigationController pushViewController:mainView animated:YES];//必須在AppDelegate設定UINavigationController,否則pushViewController無效。//並且使用pushViewController後,在B頁面,會內建一個“Back”按鈕返回上一頁。
IOS頁面跳轉的方法