如何使用制表符和导航控制器实例化视图控制器以进行深层链接?

时间:2015-07-15 15:47:58

标签: ios swift uiviewcontroller uinavigationcontroller uitabbarcontroller

我正在为我的应用实施深层链接,并且无法正确实例化我的应用。对于我的应用程序链接,它正在打开博客文章的详细信息页面,因此我将其实例化为:

var controller = PostDetailController()

问题是底部没有导航标题或标签栏。如何从一开始就正确启动我的应用,然后加载我的PostDetailController

下面是我的故事板的样子,我正在尝试直接链接到我的“Post Detail Controller”,但是后面有所有以前的控制器,我该怎么做? enter image description here

1 个答案:

答案 0 :(得分:4)

有很多不同的方法可以实现这一点。假设您是从app delegate的openURL:方法开始的,这里有一种方法的高级视图。

  1. openURL:方法中,从url中解析出所需的参数,并将其存储在全局变量中。
  2. 对您的UITabBarController进行子类化并创建一个处理深层链接的函数。此函数应评估app委托中的全局变量集,并确定需要显示哪个Tab和视图。
  3. 例如:

            // Check for deep link global var
    
            if (myGlobalVar==1){
                //Instantiate the destination view (the view you want the deep link to show)
                DetailViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"myDetailView"];
    
                //set any vars need in the destination view
    
                //Push the detail View to stack of the to be seleceted Tab
                [[self.viewControllers objectAtIndex:myTABINDEX] pushViewController:detailViewController animated:NO];
    
                //select the tab to the destination view
                [self setSelectedIndex:myTABINDEX];
    
            }