3

在我的 iOS 应用程序中,我想在根视图控制器已经出现在屏幕上之后运行一系列操作。但是,iOS 应用程序似乎正在调用 viewDidAppear,而初始屏幕(即显示 Default.png 图像)仍在屏幕上并且在根视图控制器被布置在屏幕上之前。我也在 viewDidLoad 中尝试过相同的代码,并且遇到了同样的问题。我如何强制代码仅在根视图控制器实际在屏幕上运行时才运行?

4

2 回答 2

2

在 viewdidload 中使用这个

[self performSelector:@selector(loadData) withObject:nil afterDelay:.5];

然后在 loaddata 方法中使用您的代码...

于 2011-04-29T09:19:44.410 回答
2

我自己也遇到了一个非常相似的问题,我想在我的根视图控制器加载后显示一个模式登录视图。我以前一直在使用viewDidAppear,但是当我升级到 iOS 4.3 SDK 时,这种行为就中断了。

我通过从应用程序委托的application:didFinishLaunchingWithOptions:选择器调用我的根视图控制器上的选择器来修复它。在另一个答案中使用延迟有点麻烦,而且可能并不完全可靠。

yourAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // Add the view controller's view to the window and display.
    [self.window addSubview:viewController.view];
    [self.window makeKeyAndVisible];

    // Invoke operations here. For example, show login view:
    [viewController showModalLoginView];

    return YES;
}
于 2011-06-30T19:46:51.803 回答