San*_*hak 1 objective-c ios uistoryboard
instantiateViewControllerWithIdentifier和initWithNibName之间有什么区别,除了前者是故事板而后来不是?
UIStoryboard *signupStory = [UIStoryboard storyboardWithName:@"SignupStory" bundle:[NSBundle mainBundle]];
    SignupLoginViewController *signUpVC = [signupStory instantiateViewControllerWithIdentifier:@"SignupVC"];  
和
SignupLoginViewController *signUpVC = [[SignupLoginViewController alloc] initWithNibName:@"SignupLoginViewController" bundle:[NSBundle mainBundle]];
如果您使用故事板创建了UI,则需要致电instantiateViewControllerWithIdentifier.这里,标识符不是视图控制器本身的一部分,而是仅由故事板用于定位视图控制器.故事板将处理初始化并最终调用initWithCoder,这就是为什么在创建子类视图控制器时需要覆盖它.
另一方面,如果您的UI位于纯.xib文件中 - 开发人员通常会使用initWithNibName.从技术上讲,它确实打破了封装,并且还有其他方法可以实现,但是你会看到它最常用,因为它是类的指定初始化器.
| 归档时间: | 
 | 
| 查看次数: | 550 次 | 
| 最近记录: |