sol*_*sol 3 iphone xcode objective-c viewdidload loadview
任何人都可以解释为什么在使用loadView时不会调用viewDidLoad?我的理解是viewDidLoad应该仍然被调用.
- (void)loadView
{
CGRect currentFrame = [[UIScreen mainScreen] applicationFrame];
UIView* myView = [[UIView alloc] initWithFrame:CGRectMake(currentFrame.origin.x, currentFrame.origin.y, currentFrame.size.width, currentFrame.size.height)];
myView.backgroundColor = [UIColor redColor];
self.view = myView;
[myView release];
[super loadView];
}
- (void)viewDidLoad {
//this never happens
NSLog(@"VIEW DID LOAD!");
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)
我刚刚发现,如果在应用程序中手动调用loadView,则不会调用viewDidLoad.如果手动调用loadView,则还必须手动调用viewDidLoad.
根据apple docs,您不应该调用[super loadView],因为它会使用默认的UIView覆盖您的视图.
这里必须有一个警告:
NSLog("VIEW DID LOAD!");
Run Code Online (Sandbox Code Playgroud)
相反,你应该这样写(@符号是必要的):
NSLog(@"VIEW DID LOAD!");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2434 次 |
| 最近记录: |