[英]My viewController doesn't show up right
在我的iPad应用程序中,我试图用模态表单样式展示我的一种视图。 这是一些代码:
-(void)present
{
SecondViewController *modal = [[SecondViewController alloc]init];
modal.modalPresentationStyle = UIModalPresentationStyleFormSheet;
[self presentModalViewController:modal animated:YES];
}
我正在使用情节提要,并且已在要显示的视图中放置了诸如textView和工具栏之类的东西。 我在Identity Inspector中设置了正确的类,并在类文件中检查了NSLog(@"Right view");
出现的正确视图NSLog(@"Right view");
当调用存在的空白时,将出现一个视图,但仅显示为深白色正方形。 故事板中的内容没什么,我什至尝试更改视图和textView的背景颜色以查看某物是否刚刚在正方形之外,但整个东西都保持白色。 感觉好像没有使用我在情节提要中创建的视图,但是我将其设置为正确的类,并且在调用它时会打印出NSLog。 我没有在Storyboard中以任何方式连接两个视图,SecondViewController只是在浮动,所以可能是问题所在? 要求-(void)present
的按钮是通过编程方式创建的,因此我也无法按住Ctrl键并将其拖动到该按钮上。
为什么显示我班级的空白版本?
在“身份检查器”中,为您的ViewController设置一个“故事板ID”,然后像这样显示它:
-(void)present
{
SecondViewController *modal = [self.storyboard instantiateViewControllerWithIdentifier:@"myStoryboardID"];
modal.modalPresentationStyle = UIModalPresentationStyleFormSheet;
[self presentModalViewController:modal animated:YES];
}
如果您使用的是iOS6,则不建议使用presentModalViewController:animated:
,因此请使用以下命令:
-(void)present
{
SecondViewController *modal = [self.storyboard instantiateViewControllerWithIdentifier:@"myStoryboardID"];
modal.modalPresentationStyle = UIModalPresentationStyleFormSheet;
[self presentViewController:modal animated:YES completion:nil];
}
您的问题是,您假设程序本质上知道在哪里可以找到该控制器的视图,而这并不是情节提要板的工作原理。 您列出的代码将创建一个视图控制器 ,但是如果没有关联的视图 ,它将仅显示为黑色正方形。
有几种方法可以解决您的难题:
.xib
板移到外部.xib
然后调用initWithNibName:bundle:
方法将其加载为视图控制器的视图。 如果只想以编程方式加载视图,则这是最佳解决方案。 instantiateViewControllerWithIdentifier:
方法以编程方式从情节提要中加载视图,这可能是个坏主意,因为它与情节提要的设计背道而驰。 如果您愿意,我可以详细说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.