Iphone 从应用程序委托调用PushViewController时不工作
我有一个基于标签栏的应用程序。当应用程序激活时,我希望它转到第二个选项卡栏(SecondViewController),然后打开DetailViewController 我是这样做的: AppDelegate.mIphone 从应用程序委托调用PushViewController时不工作,iphone,ios,uitabbarcontroller,uiapplicationdelegate,pushviewcontroller,Iphone,Ios,Uitabbarcontroller,Uiapplicationdelegate,Pushviewcontroller,我有一个基于标签栏的应用程序。当应用程序激活时,我希望它转到第二个选项卡栏(SecondViewController),然后打开DetailViewController 我是这样做的: AppDelegate.m - (void)applicationDidBecomeActive:(UIApplication *)application { self.tabBarController.selectedViewController = [self.tabBarController.vie
- (void)applicationDidBecomeActive:(UIApplication *)application {
self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:1];
SecondViewController *secondView = [[SecondViewController alloc] init];
[secondView openDetailView];
[secondView release];
-(void)openDetailView{
NSLog(@"open detail view");
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
[[self navigationController] pushViewController:detailViewController animated:YES];
}
}
SecondViewController.m
- (void)applicationDidBecomeActive:(UIApplication *)application {
self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:1];
SecondViewController *secondView = [[SecondViewController alloc] init];
[secondView openDetailView];
[secondView release];
-(void)openDetailView{
NSLog(@"open detail view");
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
[[self navigationController] pushViewController:detailViewController animated:YES];
}
openDetailView()确实运行(正如我看到的nslog工作),但是DetailView没有被推送?我知道代码是有效的,因为我在一个iAction中有相同的代码,它推送detailView。问题与从AppDelegate(或切换选项卡)调用有关
那么,当我从应用程序代理调用视图时,为什么视图没有被推送?非常感谢您的帮助 您将detailViewController推送到secondView的导航堆栈,但是secondView不在任何位置 试试这个
SecondViewController *secondView ...
[self.tabBarController pushViewController:secondView animated:YES]; <==
[secondView openDetailView];
SecondViewController*secondView。。。
[self.tabbar控制器pushViewController:secondView动画:是];使用以下代码检查是否正在获取导航控制器的值-UINavigationController navController=[(MyAppDelegate)[[UIApplication sharedApplication]delegate]navigationController];另外,如果您有一些IBOutlet,请确保它们连接正确。[self-navigationController]
很可能是nil
,因为secondViewController未分配给任何navigationController(至少从您向我们显示的代码中)。