代码之家  ›  专栏  ›  技术社区  ›  shannoga

通知后,将视图控制器从应用程序委托推送到选项卡栏中

  •  1
  • shannoga  · 技术社区  · 16 年前

    我有一个带有标签栏的应用程序,每个标签内都有一个导航控制器。 我已经设置了一个通知,当它午餐时,用户可以通过按下警报上的操作来获得应用程序午餐。

    我想将用户重定向到其中一个控制器内的某个视图。

    我尝试过:

    - (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {
        NSArray *data = [notif.userInfo objectForKey:@"todoDate"];
        NSInteger ind = [[data objectAtIndex:2] integerValue];
    
        QuickViewController *detailViewController ;
        detailViewController = [[QuickViewController alloc] initWithNibName:@"QuickViewController" bundle:nil];
    
        detailViewController.title = @"Edit";
        detailViewController.personName = [data objectAtIndex:0];
        detailViewController.DelitionDate=[data objectAtIndex:1];
        detailViewController.personCategory=@"NO Category";
        detailViewController.personID = ind r ;
    
        rootControler.selectedIndex = 1;
        [rootControler.tabBarController.selectedViewController.navigationController pushViewController:detailViewController animated:YES];
    }
    

    但是除了:rootcontroller.selectedIndex=1之外,没有发生任何事情(没有崩溃);

    当我尝试: 当前模式视图控制器

    我的视野很好,但没有导航控制器。

    谢谢 沙尼

    1 回复  |  直到 13 年前
        1
  •  1
  •   Jeff Kelley    16 年前

    听起来你在推 detailViewController 当你真的想推动 UINavigationController 具有 详细视图控制器 作为它的根视图。尝试如下操作:

    QuickViewController *detailViewController ;
    
    detailViewController =
    [[QuickViewController alloc] initWithNibName:@"QuickViewController"
                                          bundle:nil];
    
    UINavigationController *navigationController =
    [[UINavigationController alloc] initWithRootViewController:detailViewController];
    
    [detailViewController release];
    
    ...
    
    [rootControler.tabBarController.selectedViewController.navigationController 
    pushViewController:navigationController animated:YES]