2012-02-02 73 views
1

我使用的XCode 4.2开发用于iPhone和ipad目标C视图没有被装载在物理设备

应用

我使用在模拟器上下面的函数

-(IBAction)button{ 
    ... 
    SettingsView *hello ; 
    hello= [[SettingsView alloc] initWithNibName:nil bundle:nil]; 
    [self presentModalViewController:hello animated:YES]; 
} 

加载的视图的视图加载完美。但是当我在真正的iPhone上加载应用程序时,我会看到一个白色屏幕,无法回到应用程序......有什么原因?

+0

它有一个与它相关的.xib文件吗? “ – shabbirv 2012-02-02 22:18:49

+1

”Class“不是你认为的那样,你应该使用SettingsView * hello;代替。 – 2012-02-02 22:23:32

+0

有与之相关联的厦门国际银行文件是 – user1051935 2012-02-02 22:38:10

回答

2

这种问题的最常见的原因是相关的的.xib案件不匹配。既然你通过了nil作为名字,它会尝试加载SettingsView.nib。如果你的文件被称为Settingsview.nib(注意“v”),那么它可以在Mac(大部分时间和模拟器)上工作,但不能在iOS上工作。默认情况下,Mac具有不区分大小写的文件系统。 iOS始终有一个区分大小写的文件系统。


在为设备构建之后,请转至~/Library/Developer/Xcode/DerivedData并找到您的项目输出。深入了解产品目录,并确保您的nib文件真的存在并命名您所期望的。

+0

我有一个与该类关联的xib文件。 我确定了区分大小写,但仍然没有... – user1051935 2012-02-02 22:41:59

1

如果没有的.xib与它相关联,那么使用此代码:

SettingsView *hello= [[SettingsView alloc] initWithNibName:nil bundle:nil]; 
[self presentModalViewController:hello animated:YES]; 
[hello release]; 

是否有与它

SettingsView *hello= [[SettingsView alloc] initWithNibName:@"SettingsView" bundle:nil]; 
[self presentModalViewController:hello animated:YES]; 
[hello release]; 
+0

我与它相关联的XIB文件,我试过的代码,仍然有同样的问题... – user1051935 2012-02-02 22:40:09

+1

的UIViewController的不错,但偶尔混乱的特点是,如果你传递零的笔尖名称,它会寻找名称与班级名称相匹配的笔尖。所以名为“MyViewController”的类将查找名为“MyViewController.xib”的.xib文件。 – Caleb 2012-02-02 22:43:05

+0

.xib“SettingsView”的名称是?并且它在Interface Builder中连接到类SettingsView – shabbirv 2012-02-02 23:57:34

0

尝试设置视图framemodalPresentationStyle

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?

相关问题