当调用launcherView:didSelectItem时,“嵌套推送动画可能导致导航栏损坏”:

时间:2011-06-21 03:08:00

标签: iphone three20

在three20 TTCategory示例中,我尝试修改LauncherViewTestController以启动测试视图控制器。我创建了一个TestContrller类并注册为

[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。

2 个答案:

答案 0 :(得分:2)

这是我正在使用的TTLauncher的一个工作示例,它是基于TTLauncherItem的动作URL推送控制器。在app委托中注册控制器是微不足道的,所以我只包括启动器控制器的功能。

///////////////////////////////////////////////////////////////////////////////////////////////////
- (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);
}

答案 1 :(得分:0)

我发现问题是我需要映射到sharedviewcontroller而不是viewcontroller。

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