我已经苦苦挣扎了一段时间,似乎从来都无法得到直接的答案。
非常感谢任何帮助!
我已经苦苦挣扎了一段时间,似乎从来都无法得到直接的答案。
非常感谢任何帮助!
如果你正在使用导航控制器:
ViewController *viewController = [[ViewController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
或者,如果你只想展示一个新视图:
ViewController *viewController = [[ViewController alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
如果您想在同一故事板中呈现新视图,
请在CurrentViewController.m文件中进行操作,
#import "YourViewController.h"
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
YourViewController *viewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifier"];
[self presentViewController:viewController animated:YES completion:nil];
要为视图控制器设置标识符, 打开MainStoryBoard.storyboard。 选择YourViewController View-> Utilities -> ShowIdentityInspector。 在那里您可以指定标识符。
Swift版本:
如果您正在导航控制器中:
let viewController: ViewController = self.storyboard?.instantiateViewControllerWithIdentifier("VC") as ViewController
self.navigationController?.pushViewController(viewController, animated: true)
或者,如果你只是想呈现一个新的观点:
let viewController: ViewController = self.storyboard?.instantiateViewControllerWithIdentifier("VC") as ViewController
self.presentViewController(viewController, animated: true, completion: nil)
instantiateViewControllerWithIdentifier
是指 Storyboard ID
。
NextViewController *NVC = [self.storyboard instantiateViewControllerWithIdentifier:@"NextViewController"];
[self presentViewController:NVC animated:YES completion:nil];
ViewController *viewController = [[ViewController alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
您可以使用
[self dismissViewControllerAnimated:YES completion: nil];
Swift 3.0 版本
如果你想呈现新的控制器。
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "controllerIdentifier") as! YourController
self.present(viewController, animated: true, completion: nil)
如果你想要跳转到导航控制器中的另一个控制器,请使用下面的代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "controllerIdentifier") as! YourController
self.navigationController?.pushViewController(viewController, animated: true)
#import "YourViewController.h"
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboard" bundle:nil];
YourViewController *viewController = (YourViewcontroller *)[storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifier"];
[self.navigationController pushViewController:viewController animated:YES];
要为视图控制器设置标识符,请打开 YourStoryboard.storyboard。选择 YourViewController 视图 -> 实用工具 -> 显示身份检查器。在那里,您可以指定标识符。
NSTimer *switchTo = [NSTimer scheduledTimerWithTimeInterval:0.1
target:selfselector:@selector(switchToTimer)userInfo:nil repeats:NO];
- (void) switchToTimer {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"MyViewControllerID"]; // Storyboard ID
[self presentViewController:vc animated:FALSE completion:nil];
}
Swift 3.0 中
从一个视图控制器到第二个视图控制器的跳转:
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MsgViewController") as! MsgViewController
self.navigationController?.pushViewController(loginVC, animated: true)
第二个视图控制器返回到第一个视图控制器: 通过“返回”按钮的操作事件:
self.navigationController?.popViewController(animated:true)
self.navigationController?.popToRootViewController(animated:true)
[self.navigationController pushViewController:someViewController animated:YES];
presentModalViewController:animated:
标注为已弃用。应改用presentViewController:animated:completion:
。 - user577537alloc
和init
来实例化视图控制器,主要是因为使用了storyboards。你可以使用[self.storyboard instantiateViewControllerWithIdentifier@:"storyboard id"]
来实例化视图控制器,或者如果使用segue的话,可以直接使用[self performSegueWithIdentifier:@"storyboard id" sender:self];
进行转场并实例化新的视图控制器。如果使用NIBs,如果NIB的名称不同,则可以使用[[NSBundle mainBundle] loadNibNamed:@"nibname" owner:self options:nil]
来实例化视图控制器。 - Rob