Ios self.navigationController分配为RootViewController后是否为null?

Ios self.navigationController分配为RootViewController后是否为null?,ios,objective-c,xcode,uinavigationcontroller,Ios,Objective C,Xcode,Uinavigationcontroller,我创建了一个新的xcode项目作为基于视图的应用程序,我有一组UIViewController,我计划在单独的UINavigationController(s)中使用 在ParentViewController.m中,在所有UINavigationController之前和所有myviewcontroller启动之后: NSMutableArray *navControllers = [[NSMutableArray array]; for (id aVC in self.myViewContr

我创建了一个新的xcode项目作为基于视图的应用程序,我有一组
UIViewController
,我计划在单独的
UINavigationController
(s)中使用

ParentViewController.m
中,在所有
UINavigationController
之前和所有myviewcontroller启动之后:

NSMutableArray *navControllers = [[NSMutableArray array];
for (id aVC in self.myViewControllers) {
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:aVC];

    //[aVC setNavigationController:navController];
    [navController setNavigationBarHidden:YES];
    [navController setToolbarHidden:YES];
    [navControllers addObject:navController];
    [navController release];
}

_navigationControllers = [[NSArray arrayWithArray:navigationControllers] retain];
\u navigationControllers
作为
ParentViewController
的成员保留,因此我假设在for循环内部启动的所有导航控制器都由
\u navigationControllers
保留,因此它们不会被释放或变为
零,但是,当我尝试在
MyViewController
中使用navigationController来推送
SomeOtherViewController
时,它不起作用:

- (IBAction)pushDetailView {
     [self.navigationController pushViewController:self.detailViewController animated:YES];
}
我在
pushViewController:someOtherViewController
和“po[self-navigationController]”之前放置了一个断点,控制台告诉我这是一个
nil
引用

我想当我这么做的时候
[[UINavigationController alloc]initWithRootViewController:aVC]
,底层机制将
navigationController
分配为
aVC.navigationController
,因为Apple的“iOS视图控制器编程指南”在不将
navigationController
分配给
rootController
的情况下执行相同操作

除非我取消标记for循环的第二行
/[aVC setNavigationController:navController],aVC中不存在导航控制器

我是否误解了机制?我的案子还有别的解决办法吗? 提前谢谢

_navigationControllers = [NSMutableArray array];
for (id aVC in self.myViewControllers) {
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:aVC];

    //[aVC setNavigationController:navController];
    [navController setNavigationBarHidden:YES];
    [navController setToolbarHidden:YES];
    [navControllers addObject:navController];
}

// assuming index 0 navigation controller is with 'ParentViewController'
self.rootViewController = [_navigationControllers objectAtIndex:0];
看看这个


检查此项。

能否从父.h文件中显示_NavigationController的属性声明。问题中的所有假设/逻辑在我看来都是正确的(即initWithRootViewController应自动在根视图控制器上设置navigationController属性),您能否从父.h文件中显示_navigationController的属性声明。在我看来,问题中的所有假设/逻辑都没有问题(即initWithRootViewController应自动在根视图控制器上设置navigationController属性)