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构建并运行
答案 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)
就像我说的,没有控制台消息,也没有编译器警告。 您是否可以确认该消息仅在显示警报的情况下可见,并且在没有警报的情况下没有此消息?