2

我想打開一個特定的UIViewController,具體取決於我從URL方案獲得的ID。推送通知後從URL方案打開UIViewController

例如myapp:// news/285會打開UIViewController「news」來顯示這個特定的一個。

我在這裏得到通知:

- (BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
    sourceApplication:(NSString *)source 
     annotation:(id)annotation 
{ 
    if ([[url scheme] isEqualToString:@"myapp"]) { 

     NSString *urlString = url.absoluteString; 

... 

     return YES; 
    } 

    return NO; 
} 

但我怎麼推的UIViewController?我無法從這裏訪問導航控制器。

(我在想發送帶有NSNotficationCenter通知到我的主頁與ID,並從那裏推的UIViewController。你覺得呢?)

THX

回答

1

你知道你查看設置。所以,當你RootViewController的是一個UINavigationController那麼你可以使用:

UINavigationController *navCon = (UINavigationController*)self.window.rootViewController; 
[navCon pushViewController:myPushedVC animated:NO]; 

如果沒有,那麼也許更容易與通知的方式去

1

你可以做到這一點通過NSNotificationCenter發送通知。您的視圖控制器可以捕獲該通知並推送其他視圖控制器。

1

如果您使用的是選項卡欄,請使用以下代碼。

UINavigationController *navigationController = (UINavigationController *) tabBar_Controller.selectedViewController; 

您可以根據您的要求設置選定的視圖控制器。

如果你不使用的TabBar

UINavigationController *navigationController = (UINavigationController*)self.window.rootViewController; 

現在,你可以把任何看法。

相關問題