我在Xcode 4.2(最近升级到Xcode 4.2和ios5)中启动了一个视图模板
所以现在我只有一个视图控制器。
我在项目中添加了一个新类,它是UIViewcontroller的子类。
现在在主控制器类viewdidLoad方法
中- (void)viewDidLoad
{
// Override point for customization after application launch.
[super viewDidLoad];
[self presentQuizcontroller];
}
-(void) presentQuizcontroller
{
_QuizController = [[[Quiz alloc] initWithNibName:@"Quiz" bundle:nil] autorelease];
_QuizController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:_QuizController animated:YES]; // Do any additional setup after loading the view, typically from a nib.
}
问题出在我的测验课
中- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
initWithNibName方法确实被调用(我使用断点检查)但它没有通过if(self)的条件。因此视图不会出现。
有什么想法吗?
修改
在第一个回答之后我也尝试过这种方式
- (void)viewDidLoad
{
// Override point for customization after application launch.
[super viewDidLoad];
}
-(void) presentQuizcontroller
{
_QuizController = [[[Quiz alloc] initWithNibName:@"Quiz" bundle:nil] autorelease];
_QuizController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:_QuizController animated:YES]; // Do any additional setup after loading the view, typically from a nib.
}
-(void) awakeFromNib
{
[self presentQuizcontroller];
}
同样的事情Quiz.m initwithnib name方法不会传递条件if(self)。
答案 0 :(得分:0)
我认为你需要使用awakefromnib。
如果您想阅读更多内容,请参阅另一篇StackOverflow帖子的Link。
答案 1 :(得分:0)
PresentModalViewController已弃用,我认为您现在应该使用presentViewController而不是它。
您确定“测验”是您文件的名称吗?该字符串应与xib文件的名称相同,即“QuizController”或“QuizViewController”
通过检查:
确保xib文件正确连接到标头/实现文件xib文件的所有者应设置为viewController
在xib文件上查看(如果您有多个视图,则最重要的一个)应该连接到viewControllers视图。