Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone &引用;嵌套的推送动画可能导致导航栏“损坏”;调用launcherView:didSelectItem时:_Iphone_Three20 - Fatal编程技术网

Iphone &引用;嵌套的推送动画可能导致导航栏“损坏”;调用launcherView:didSelectItem时:

Iphone &引用;嵌套的推送动画可能导致导航栏“损坏”;调用launcherView:didSelectItem时:,iphone,three20,Iphone,Three20,在three20 TTCategory示例中,我试图修改LaunchViewTestController以启动测试视图控制器。我创建了一个TestContrller类并注册为 [map from: @"tt://test" parent: @"tt://launcherTest" toViewController: [TestController class] selector: nil tra

在three20 TTCategory示例中,我试图修改LaunchViewTestController以启动测试视图控制器。我创建了一个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。

这是我正在使用的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);
}
[map            from: @"tt://test"
              parent: @"tt://launcherTest"
    toSharedViewController: [TestController class]
            selector: nil
          transition: 0];

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

///////////////////////////////////////////////////////////////////////////////////////////////////
- (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);
}
[map            from: @"tt://test"
              parent: @"tt://launcherTest"
    toSharedViewController: [TestController class]
            selector: nil
          transition: 0];

如果你把一个视图控制器推到一个带有动画的导航控制器上,你必须等到动画完成后再推另一个视图控制器。这实际上是调用与我在代码中所做的相同的函数。