Împingeți un controler uiview în partea de sus a ViewController existent atunci când aplicația mea devine din nou activă

Aplicația mea are un numărător UIViewControllers care poate fi afișat de utilizator în orice moment. Aplicația poate fi pornită și cu un document (de exemplu, un atașament pentru aplicația de e-mail).

Scenariul este următorul: - utilizatorul pornește aplicația și navighează în interiorul aplicației - utilizatorul pune App în modul Fundal și merge la aplicația Mail - Din aplicația de e-mail, utilizatorul selectează o e-mail cu atașament și deschide atașamentul cu aplicația mea - aplicația mea va intra în prim-plan și aș dori să afișez atașamentul într-un controler de vizualizare specific. - Când utilizatorul a terminat cu atașamentul, el ar trebui să poată reveni la starea anterioară din aplicație (înainte de deschiderea atașamentului).

Am supraîncărcat următoarele metode din 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

Folosind aceste metode pot afla dacă există un document care să fie afișat și dacă aplicația mea a fost deja pornită sau nu.

Problema mea este să împing vizorul specific ViewController.

Mai jos este un extras din codul meu pentru a împinge ViewController, dar nu se întâmplă nimic, nici o idee? Cum pot găsi aplicația ViewController activă în aplicația mea?

- (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;
            }
        }
    }
}
0
iOS dezvoltatori, România — Moldova
iOS dezvoltatori, România — Moldova
21 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro, @seo_ro Android: @ro_android