0

我正在像这样加载我的视图控制器:

NSArray *viewControllerNames = [NSArray arrayWithContentsOfFile:path];
    for (NSString *viewControllerClass in viewControllerNames) {

        NSString *filePath = [self filePathForClass:NSClassFromString(viewControllerClass)];
        if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
            id viewController = [NSKeyedUnarchiver unarchiveObjectWithData:[NSData dataWithContentsOfFile:filePath]];

            [self pushViewController:viewController animated:NO];
        }
    }

在我的堆栈的根视图控制器上,我在导航栏中添加了一个手势识别器。

但是,如果我将某个视图控制器推到顶部,它将不会加载此手势,因为viewDidLoad不会调用根视图控制器,并且如果我访问它的viewControllers属性,UINavigationController则返回 nil。

任何想法如何继续这个手势?谢谢!

4

1 回答 1

1

如何使用setViewControllers:animated:而不是一一推送单个视图控制器?

NSMutableArray * viewControllers = [[NSMutableArray alloc] init];
for(...) { // the same for loop you have 
    ...
    [viewControllers addObject:viewController];
}
[self setViewControllers:viewControllers animated:YES];
于 2012-10-29T13:28:50.030 回答