我有一个带有xib,m和h文件的普通视图控制器。我想要在视图加载时自动调用方法。在我当前的M文件中,我有代码调用另一个视图,这只是为了查看checkIfLogged方法是否在工作。应用加载时,它不会调用其他视图,而是停留在自己的视图中。加载视图时如何获取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
最佳答案
首先,调用[super viewDidLoad];
作为viewDidLoad
实现中的第一行。
其次,您不应尝试通过viewDidLoad
呈现视图控制器。此时,您的UIViewController的视图不属于视图层次结构。而是从viewDidAppear:
提供视图控制器。