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

Posted

技术标签:

【中文标题】通知后,从应用程序委托将视图控制器推送到选项卡栏中【英文标题】:pushing view controller inside a tab bar from app delegate, after a notification 【发布时间】:2010-06-06 13:29:49 【问题描述】:

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

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

我试过这个:

- (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];

但是除了 :rootControler.selectedIndex = 1; 之外什么都没有发生(没有崩溃)

当我尝试: presentModalViewController

我得到了完美的视图,但没有导航控制器。

谢谢 沙尼

【问题讨论】:

【参考方案1】:

当您真的想以detailViewController 作为其根视图推送UINavigationController 时,听起来您正在推送detailViewController。试试这样的:

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]

【讨论】:

感谢 jeff 现在它的工作,只需将最后一个命令更改为:[rootControler presentModalViewController:navigationController animated:YES];美好的一天 没问题。随意单击绿色复选标记将此答案标记为已接受;这将有助于您获得回答未来问题的机会。

以上是关于通知后,从应用程序委托将视图控制器推送到选项卡栏中的主要内容,如果未能解决你的问题,请参考以下文章