我正在使用XCode 4.2为iPhone和iPad开发应用程序
我正在使用以下函数加载视图
-(IBAction)button{
...
SettingsView *hello ;
hello= [[SettingsView alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:hello animated:YES];
}
在模拟器上,视图加载完美。但当我在真正的iPhone上加载应用程序时,我得到一个白色的屏幕,无法回到应用程序...任何原因?
答案 0 :(得分:2)
此类问题的最常见原因是案例不匹配。由于您传递了nil
作为名称,因此会尝试加载SettingsView.nib
。如果您的文件被称为Settingsview.nib
(请注意“v”),那么这将在Mac上运行(大部分时间和模拟器),但不适用于iOS。默认情况下,Mac具有不区分大小写的文件系统。 iOS总是有一个区分大小写的文件系统。
为设备构建后,转到~/Library/Developer/Xcode/DerivedData
并找到项目输出。深入到Products目录中,确保您的nib文件确实存在,并命名为您所期望的。
答案 1 :(得分:1)
如果没有.xib与之关联,则使用此代码:
SettingsView *hello= [[SettingsView alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:hello animated:YES];
[hello release];
如果有与之关联的.xib
SettingsView *hello= [[SettingsView alloc] initWithNibName:@"SettingsView" bundle:nil];
[self presentModalViewController:hello animated:YES];
[hello release];
答案 2 :(得分:0)
尝试设置视图frame
和modalPresentationStyle
SettingsView *hello= [[SettingsView alloc] initWithNibName:@"SettingsView" bundle:nil];
hello.view.frame = CGRectMake(<CGFloat x>, <CGFloat y>, <CGFloat width>, <CGFloat height>)
hello.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:hello animated:YES];
[hello release];
从哪里(什么是自我?)你试图呈现一个modalviewcontroller ??