【问题标题】:iPhone: ViewController as a tab bariPhone:ViewController 作为标签栏
【发布时间】:2011-01-06 03:09:23
【问题描述】:

大家好,我需要一些帮助:

我有两个视图控制器,比如说:

  • FirstViewController(第一个)位于 navigationviewcontroller 中
  • SecondViewController(第二个)

所以在第一个 viewDidLoad 方法中我有这个:

SecondViewController *second = [[SecondViewController alloc] initWithNibName:...];

[self.addsubview:second.view];

我已经这样做了,因为我想用我的自定义按钮和颜色制作我的自定义标签栏。

当我按下自定义“标签栏”(seconviewcontroller)的按钮之一时,我有这个

ConfiguracionViewController *conf = [[ConfiguracionViewController alloc] initWithNibName:@"ConfiguracionView" bundle:nil];

[self.navigationController pushViewController:conf animated:YES];
[conf release];

但是因为第二个视图控制器没有被推送或模态显示在第一个视图控制器中,我无法访问导航控制器。这个我也试过了

[self.parentViewController.navigationController pushViewController:...];

但它也没有工作。

请帮帮我,我需要学习如何做到这一点,对不起我的英语不好。

最好的问候,
卡洛斯·巴尔加斯

【问题讨论】:

    标签: iphone properties uiviewcontroller uinavigationcontroller


    【解决方案1】:

    首先,您不应该像这样将第二个视图添加到第一个视图:

    [self.view addSubview:second.view];
    

    在这种情况下,属性 parentViewController 将不起作用,因为 second 不是导航层次结构的一部分。

    相反,您可以创建自己的属性来引用“父”视图控制器:

    SecondViewController *second = [[SecondViewController alloc] initWithNibName:...];
    
    // set new property
    second.parentVC = self;
    
    [self.view addSubview:second.view];
    

    在 SecondViewController.h 中你需要为“parentVC”声明实例变量和属性,在 SecondViewController.m 中你需要综合属性。

    然后,您应该能够访问导航控制器并从 SecondViewController.m 中推送视图控制器,如下所示:

    [self.parentVC.navigationController pushViewController:...];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      相关资源
      最近更新 更多