我在整个互联网上搜索了我的问题,但显然是傻到找不到任何东西。
在我的应用程序中,我正在使用Storyboard,我的大多数ViewController都以这种方式加载(我正在使用导航控制器):
MyViewControllerClass *viewController = [storyboard instantiateViewControllerWithIdentifier:@"myViewController"];
[self.navigationController pushViewController:viewController animated:YES];
现在我的问题是:是否可以在不使用故事板的情况下在代码中推送VC?就像在古代时代一样,但这对我不起作用了:
MyViewControllerClass *viewController = [[MyViewControllerClass alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
请帮帮我,我疯了。
提前致谢。
答案 0 :(得分:0)
是的,你可以不使用故事板而只需要在app委托中添加导航控制器,之后就可以正常使用了
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController=navigationController;
[self.window makeKeyAndVisible];
return YES;
}
答案 1 :(得分:0)
您可以创建xib文件并将其推送。没有视觉就无法推动。
ViewControllernew* vv = (ViewControllernew*)[[[NSBundle mainBundle] loadNibNamed:@"ViewControllernew" owner:self options:nil] objectAtIndex:0];
[self.navigationController pushViewController:vv animated:YES];
答案 2 :(得分:-1)
可以确认它确实有效。 如果viewController为nil,Push将以这种方式执行。你的alloc init是否实际创建了一个实例?