升级到iPhone 3.0 sdk,现在模拟器显示空白屏幕

时间:2009-08-02 17:27:26

标签: iphone sdk uitabbarcontroller

我有一个使用UITabBarController的iPhone应用程序,它包含两个UINavigationControllers,每个UINavigationControllers又包含一个或多个TableViewControllers(实际上是实现UITableViewDelegate和UITableViewDataSource的自定义UIViewControllers。)在启动时,它显示UITabBarController与其中一个显示的tableviews。一切都是编码的; Interface Builder不用于制作任何UI内容。它是用SDK 2编写的。它在sdk 2中运行良好。

我最近更新到SDK 3.0。在Info中,我将Base SDK设置设置为iPhone Simulator 3.0。现在,当我在模拟器中启动应用程序时,我只看到一个空白的白色屏幕,状态栏位于顶部。没有我的应用程序的迹象。但是,当我退出应用程序时,缺少的tableview会在播放现有动画时短暂显示。此外,在空白的白色屏幕上,我仍然可以单击导航按钮所在的位置,并发现当我退出应用程序并且短暂显示丢失的屏幕时,导航已将我带到另一个屏幕。因此按钮工作,并且可能是tableviewcells,他们只是无法看到。

有没有人见过这样的东西?有谁知道是什么导致它以及我如何解决它?我注意到更新到SDK 3.0时,示例应用程序(如SQLiteBooks)似乎工作正常。我的应用程序与SQLiteBooks在使用的技术方面没有太大的不同,只是如上所述,我不使用Interface Builder。

8 个答案:

答案 0 :(得分:3)

在IB中,单击“窗口”并确保选中“在启动时可见”。我没有,我的应用程序最终在检查完该框后出现。

答案 1 :(得分:2)

是的,我终于找到了简单修复 - 在MainWindow.xib中打开Window,将Alpha值更改为0(默认值为100)。

答案 2 :(得分:1)

如果您只是在代码中构建窗口,请务必从目标中的属性中删除MainWindow.xib。

如果这不是问题,我之前遇到类似的问题,应用程序在启动时表现得很奇怪。我不确定根本原因是什么,所以这对我来说是反复试验的:

1)尝试删除构建目录并重建。

2)将基本SDK设置为iPhone Device 3.0。 (无论如何,在为模拟器构建时都会覆盖基础SDK)

3)我曾经有一个问题,一次是项目plist文件和MainWindow.xib意外地从我的项目中删除了,这引起了同样的问题。如果您使用的是MainWindow.xib,请仔细检查以确保它们在您的项目结构中。

答案 3 :(得分:1)

我没有更改任何Alpha值设置。在尝试在iPhone模拟器中启动项目之前,我所做的就是退出Interface Builder。出于某种原因,如果IB在第一次运行模拟器时打开,它会给你一个空白屏幕,所以在第一次运行项目之前退出IB。

答案 4 :(得分:1)

在将iOS升级到4.2后,我遇到了在iphone模拟器上获取白屏的问题

在尝试了此线程中的人员给出的所有上述解决方案后,没有任何影响问题,

我尝试修改

中的以下代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

方法....编写此代码......

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  



    // HomeScreen is my first view that should be displayed on the app launch
    // Creating the homescreen instance in the appdelegate method and 
    // assigned it to the homeScreenWindow element declared in the appdelegate class

    HomeScreen *aHomeScreen = [[HomeScreen alloc]initWithNibName:@"HomeScreen" bundle:nil];
    self.homeScreenWindow = aHomeScreen;
    [aHomeScreen release];
    // assigning ends here

    [window addSubview:[homeScreenWindow view]];
    [window makeKeyAndVisible];

    return YES;
}

答案 5 :(得分:0)

我也有这个问题,我已经解决了以下问题:

在“界面”构建器中:

  • 文件所有者:是您的应用程序代理
  • window:是应用程序的委托窗口

在XCode中: - 如果您使用的是3.0或更高版本,请在应用程序委托中注释此代码行:

// window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]

答案 6 :(得分:0)

我通过将模式从Scale To Fill更改为Center来修复我的问题。在我更改alpha之前,它所做的就是将背景更改为黑色。我想也许实际值没有正确缩放,我是对的。再一次,只需将模式从Scale To Fill更改为Center即可,它应该有效。

答案 7 :(得分:0)

您似乎必须在运行前保存新界面。我以前从未为iPhone开发过,最后弄清楚为什么我会看到白屏。似乎它应该在运行之前自动保存,但显然它不会。