2

我的应用程序有多个 UIViewControllers 可以由用户随时显示。该应用程序也可以从一个文档启动(例如,邮件应用程序的附件)。

场景如下: - 用户启动应用程序并在应用程序内部导航 - 用户将应用程序置于后台模式并转到邮件应用程序 - 从邮件应用程序中,用户选择带有附件的邮件并使用我的应用程序打开附件 -我的应用程序将进入前台,我想在特定的视图控制器中显示附件。- 当用户完成附件后,他应该能够在应用程序中返回之前的状态(附件打开之前)。

我从 UIApplicationDelegate 重载了以下方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
- (void)applicationDidBecomeActive:(UIApplication *)application

使用这些方法,我可以找到是否有要显示的文档以及我的应用程序是否已经启动。

我的问题是推送特定的 ViewController。

下面是我推送 ViewController 的代码的摘录,但什么也没发生,知道吗?如何在我的应用程序中找到活动的 ViewController?

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    NSLog(@"applicationDidBecomeActive");

    if (_navigationCell != Nil) 
    {
        if ([DataCenter sharedInstance].isAppStarting == FALSE) 
        {
            // push a new navigation stack to display the cell from the navigation
            //PushArroundMeId
            UIWindow* window = [UIApplication sharedApplication].keyWindow;
            UIViewController* rvc = window.rootViewController;
            UIStoryboard* sb= [UIStoryboard storyboardWithName:@"MainStoryboardiPhoneApp" bundle:[NSBundle mainBundle]];
            AroundMeViewController* avc = [sb instantiateViewControllerWithIdentifier:@"AroundMeViewControllerId"];

            if (avc != Nil) {
                [rvc presentViewController:avc animated:TRUE completion:NULL];
                window.rootViewController = avc;
            }
        }
    }
}
4

0 回答 0