如何在viewDidLoad中加载视图?

时间:2010-01-31 22:52:35

标签: iphone uiviewcontroller

我想在程序开头加载第二个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方法(或其他方法)中加载新视图。

2 个答案:

答案 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;
}

上面的代码对我来说很好