UIAlertView在启动时导致警告消息

时间:2012-03-16 12:39:48

标签: ios xcode uialertview compiler-warnings nsnotifications

nilMy app需要运行一些检查,然后在我的应用程序变为活动状态时可能会显示UIAlertView。为此,我已注册didBecomeActiveNotification并在此处运行我的支票。

首次启动 期间弹出UIAlertView时会出现此问题,这会导致“应用程序最终会有一个根视图控制器应用程序启动“消息。我猜这种情况正在发生,因为UIAlertView之前会显示viewDidAppear:

如果不是UIAlertView,我应该如何触发didBecomeActiveNotification

2012-03-16 12:21:47.238 App[4181:707] viewDidLoad:
2012-03-16 12:21:47.462 App[4181:707] didBecomeActiveNotification:
2012-03-16 12:21:47.793 App[4181:707] Applications are expected to have a root view controller at the end of application launch
2012-03-16 12:21:48.500 App[4181:707] viewDidAppear:

编辑:要在新项目中触发此操作,请执行以下操作。

1个新项目 - >单一视图应用程序

2在Viewcontroller.m中将以下内容添加到viewDidLoad:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didBecomeActiveNotification:) name:UIApplicationDidBecomeActiveNotification object:nil];

3在ViewController.m中添加以下方法

 -(void)didBecomeActiveNotification:(NSNotification *)notification
{   
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:nil delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
    [alertView show];
    [alertView release];
}

4构建并运行

3 个答案:

答案 0 :(得分:0)

  

如果没有在didBecomeActiveNotification中,我该如何触发我的UIAlertView?

我会在根视图控制器中触发它。

答案 1 :(得分:0)

您的AppDelegate无法启动UIAlertViews。这只能通过ViewController完成。

我的某个应用程序中有类似的内容,我想在应用程序启动或变为活动状态时检查某些内容,并向用户显示模式viewController

我所做的是创建一个新类,它有一个方法:

+(BOOL)checkIfShouldShowAlert

然后,您可以在每个viewControllers的viewWillAppear方法中调用此方法,如下所示:

if ([myCheckerClass checkIfShouldShowAlert]) {
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle...
    [alertView show];
}

通过使用单独的类,它可以使您的代码在将来更新更加简单!

答案 2 :(得分:0)

就像我说的,没有控制台消息,也没有编译器警告。 您是否可以确认该消息仅在显示警报的情况下可见,并且在没有警报的情况下没有此消息?

enter image description here