我想在程序开头加载第二个View。我想,viewDidLoad-methode将是正确的方法。问题是它不起作用。
我想在viewDidLoad方法中加载视图的原因是,在新设备(iPad)上可以在另一个视图上加载视图。
我该怎么做?我试过这个,但它不起作用:
- (void)viewDidLoad {
StartViewController * start = [[StartViewController alloc]initWithNibName:nil bundle:nil];
start.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
start.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:start animated:YES];
}
我尝试了addSubview并且它可以工作,但后来我没有很好的过渡。任何的想法?我也试过awakeFromNib。 这也不是关于iPad的问题,所以我不打破nda。这是一个普遍的问题,如何在viewDidLoad方法(或其他方法)中加载新视图。
答案 0 :(得分:9)
这适用于viewDidAppear,而不是viewDidLoad。这个观点需要出现在另一个面前才能出现在它面前。除此之外,我在一些项目中使用相同的代码,按照您的描述进行操作
答案 1 :(得分:0)
尝试使用以下代码
- (void)viewDidLoad {
[super viewDidLoad];
//I mean after above line
if(![self isLogin]) {
//to login the user
[self gotoCredentials];
}
}
-(void)gotoCredentials {
Login *objLoginViewController=[[Login alloc] initWithNibName:@"Login" bundle:nil];
UINavigationController *objnavigationController = [[UINavigationController alloc]
initWithRootViewController:objLoginViewController];
objnavigationController.modalPresentationStyle=UIModalPresentationFormSheet;
[self presentModalViewController:objnavigationController animated:YES];
[objLoginViewController release];
objLoginViewController=nil;
[objnavigationController release];
objnavigationController=nil;
}
上面的代码对我来说很好