2011-06-21 22 views
1

「嵌套的推動畫可能導致損壞的導航欄」在three20 TTCategory示例中,我試圖修改LauncherViewTestController以啓動測試視圖控制器。我創建了一個TestContrller類,並註冊爲當調用launcherView:didSelectItem:

[map   from: @"tt://test" 
       parent: @"tt://launcherTest" 
    toViewController: [TestController class] 
      selector: nil 
      transition: 0]; 

然後在launchView:didSelectItem :,我嘗試導航到該測試視圖控制器

- (void)launcherView:(TTLauncherView*)launcher didSelectItem:(TTLauncherItem*)item { 
     TTNavigator *navigator = [TTNavigator navigator]; 
     [navigator openURLAction:[ [TTURLAction actionWithURLPath:@"tt://test"] applyAnimated:NO]]; 
} 

不過,我不斷收到「可能會導致錯誤的嵌套推動畫在損壞的導航欄中「,並且導航欄與標題堆棧相互無法正常工作。我對iphone開發很陌生,有人可以給我一些幫助嗎?

編輯,我在下面發佈我的答案,我需要映射到SharedViewController而不是ViewController。

+0

如果使用動畫將視圖控制器推到導航控制器上,必須先等到該動畫完成後再按另一個視圖控制器。 – titaniumdecoy

+0

但我該怎麼辦? –

回答

0

我發現問題是我需要映射到sharedviewcontroller而不是viewcontroller。

[map   from: @"tt://test" 
       parent: @"tt://launcherTest" 
    toSharedViewController: [TestController class] 
      selector: nil 
      transition: 0]; 
2

下面是我使用的TTLauncher的一個工作示例,它基於TTLauncherItem的操作URL推送控制器。在應用程序委託中註冊控制器是微不足道的,所以我只包含啓動器控制器的功能。

/////////////////////////////////////////////////////////////////////////////////////////////////// 
- (void)loadView { 
    [super loadView]; 

    _launcherView = [[TTLauncherView alloc] initWithFrame:self.view.bounds]; 
    _launcherView.backgroundColor = [UIColor whiteColor]; 
    _launcherView.delegate = self; 
    _launcherView.columnCount = 3; 

    _launcherView.pages = [NSArray arrayWithObjects: 
         [NSArray arrayWithObjects: 
          [[[TTLauncherItem alloc] initWithTitle:@"Breaking News" 
                  image:@"bundle://Icon.png" 
                  URL:@"portal://news/breakingnews" 
                 canDelete:NO] autorelease], 
          nil], 

         nil 
         ]; 
    [self.view addSubview:_launcherView]; 
} 



/////////////////////////////////////////////////////////////////////////////////////////////////// 
/////////////////////////////////////////////////////////////////////////////////////////////////// 
#pragma mark - 
#pragma mark TTLauncherViewDelegate 


/////////////////////////////////////////////////////////////////////////////////////////////////// 
- (void)launcherView:(TTLauncherView*)launcher didSelectItem:(TTLauncherItem*)item { 
    TTOpenURL(item.URL); 
} 
+0

這基本上和我一樣,如果你進入代碼調用相同的功能。 –