视图加载时不调用方法

时间:2013-09-30 21:49:27

标签: ios objective-c uiviewcontroller

我有一个带有xib,m和h文件的普通视图控制器。我想在视图加载时自动调用方法。在我当前的M文件中,我让代码调用另一个视图,这样我就可以看到checkIfLogged方法是否正常工作。当应用程序加载时,它不会调用另一个视图,它会保留在自己的视图中。如何在viewloads时调用checkIfLogged方法?实际上,我希望在视图被加载之前调用方法,如果可能的话。

这是我的M档。

#import "ViewController.h"
#import "LoginView.h"

@interface ViewController ()

@end

@implementation ViewController
-(void) viewDidLoad{
    [self checkIfLogged];
}

- (void) checkIfLogged
{
    LoginView *loginView = [[LoginView alloc] initWithNibName:@"LoginView" bundle:nil];
    [loginView setModalPresentationStyle:UIModalPresentationFormSheet]; //you can change the way it is presented
    [loginView setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; //you can change the animation
    [self presentViewController:loginView animated:YES completion:nil]; //show the modal view


}//end checkIfLogged

@end

这是我的H档

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

-(IBAction)checkIfLogged;

@end

1 个答案:

答案 0 :(得分:2)

首先,将[super viewDidLoad];作为viewDidLoad实施的第一行。

其次,您不应尝试从viewDidLoad呈现视图控制器。此时,您的UIViewController视图不是视图层次结构的一部分。改为从viewDidAppear:呈现视图控制器。