UIApplicationWillEnterForegroundNotification与应用程序:openURL:sourceApplication:annotation:

时间:2014-01-29 08:13:27

标签: ios nsnotifications

在UIViewController中,我注册 UIApplicationWillEnterForegroundNotification 通知。

-(void)viewDidAppear:(BOOL)animated {
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(btnContinuePressed:) 
                                                 name:UIApplicationWillEnterForegroundNotification 
                                               object:nil];
}

我希望仅在应用程序以正常方式恢复时执行btnContinuePressed: - 单击图标或通过多任务菜单打开。

使用URL方案打开应用程序时,不应执行方法btnContinuePressed:。通过URL方案打开在AppDelegate中使用自定义通知处理:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    [[NSNotificationCenter defaultCenter] postNotificationName:@"didOpenViaUrl" 
                                                        object:url];
    return YES;
}

底线:如果UIApplicationWillEnterForegroundNotification是,则不应触发通知didOpenViaUrl

1 个答案:

答案 0 :(得分:0)

简单来说,你无法改变它们,但是你可以通过在你的appDelegate代码中创建一个BOOL属性来实现一个棘手的方法,它会告诉你应用程序的打开位置我认为!