2012-10-29 59 views
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不會被調用,如果我訪問的UINavigationControllerviewControllers屬性返回零。

任何想法如何繼續這個手勢?謝謝!

回答

1

如何使用setViewControllers:animated:而不是逐個推送單個視圖控制器?

NSMutableArray * viewControllers = [[NSMutableArray alloc] init]; 
for(...) { // the same for loop you have 
    ... 
    [viewControllers addObject:viewController]; 
} 
[self setViewControllers:viewControllers animated:YES]; 
+0

有沒有這樣的選擇對UINavigationController的。 – Devfly

+0

對不起,這是一個錯字。它應該是'setViewControllers:animated:'而不是'addViewControllers:animated:'。 – barley