2010-01-17 159 views
0

嗨,我需要一些帮助,这:iPhone:视图控制器的标签栏

我有两个视图控制器,让我们说:

  • FirstViewController(第一)是navigationviewcontroller
  • SecondViewController内(二)

所以在第一的viewDidLoad方法,我有这样的:

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

[self.addsubview:second.view]; 

我已经完成了这个cuz我想用我的自定义按钮和颜色制作自定义标签栏。

我有这样当我按下自定义“标签栏”(seconviewcontroller)

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

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

的按钮中的一个,但由于第二视图控制器没有被按下,或在第一视图控制器I可以模态呈现无法访问navigationController。我也试过这个

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

但它也没有工作。

请帮助我,我需要学习如何做到这一点,并为我的坏英语感到抱歉。

最好的问候,
卡洛斯巴尔

回答

1

首先,你不应该被加入到这样的第一视图第二种观点:

[self.view addSubview:second.view]; 

酒店parentViewController不会在这种情况下,由于工作其次不是导航层次结构的一部分。

相反,你可以让你自己的财产引用“父”视图控制器:

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:...]; 
+0

由于它的工作! – 2010-01-18 05:28:04

相关问题