5

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

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

有没有人见过这样的事情?有谁知道是什么原因造成的,我该如何解决?我注意到示例应用程序(例如 SQLiteBooks)在更新到 SDK 3.0 时似乎运行良好。在使用的技术方面,我的应用程序与 SQLiteBooks 并没有太大区别,除了如上所述,我不使用 Interface Builder。

4

8 回答 8

3

在 IB 中,单击“Window”并确保选中“Visible At Launch”。我的不是,我的应用程序在选中该框后终于出现了。

于 2010-06-08T05:22:58.470 回答
2

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

于 2009-10-02T21:44:31.283 回答
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;
}
于 2011-03-01T05:58:48.803 回答
1

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

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

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

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

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

于 2009-08-19T13:36:30.050 回答
1

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

于 2010-01-18T18:52:49.457 回答
0

It appears you have to save the new interface before running. I have never developed for IPhone before and finally figured out why i was getting a white screen. Seems like it should save automatically before running but apparently it doesn't.

于 2010-07-12T03:07:31.273 回答
0

我也有这个问题,我可以解决以下问题:

在界面生成器中:

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

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

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

于 2010-06-08T13:35:45.287 回答
0

我通过将模式从更改为Scale To Fill来修复我的Center。在我更改 alpha 之前,它所做的只是将背景更改为黑色。我想也许实际值没有正确缩放,我是对的。同样,只需将模式从Scale To FilltoCenter和瞧,它应该可以工作。

于 2010-06-15T23:31:40.747 回答