2009-01-13 61 views
0

我已经使用在下面的示例中列出但我传递的变量(rootcategory)仍然是在viewDidLoad中所加载的观点明显的方法试图视图之间的数据。你如何通过使用一个UINavigationController

这是我的代码:

CategoryViewController *viewController = [[CategoryViewController alloc] initWithNibName:@"CategoryViewController" bundle:[NSBundle mainBundle]]; 
self.categoryViewController.rootCategory = @"433"; 
self.categoryViewController = viewController; 
[viewController release]; 

我合成属性在标题如下:

@property (nonatomic, readwrite) NSString *rootCategory; 

回答

3

您正在分配viewController,并尝试在将其分配给viewController之前更改self.categoryViewController。

CategoryViewController *viewController = [[CategoryViewController alloc] initWithNibName:@"CategoryViewController" bundle:[NSBundle mainBundle]]; 
viewController.rootCategory = @"433"; 
self.categoryViewController = viewController; 
[viewController release]; 

应该工作。

+0

并没有帮助我害怕没有任何区别 – 2009-01-13 11:51:46

+0

你会介意告诉我使用自己与不使用自己的区别,我猜它不是这样。在c#(我的背景) – 2009-01-13 11:53:25

0

什么是对CategoryViewController你的头文件是什么样子?您是否将rootCategory定义为属性?它是合成的还是你编写了自己的setter和getter?

+0

添加片段问题 – 2009-01-13 11:39:11

0

我相信viewDidLoadinitWithNibName:返回之前在新实例上被调用,因此您将在调用它之后设置属性。

0

您的代码是正确的,但在设置属性(如iKenndac指出的)之前调用viewDidLoad

您应该改用- (void)viewWillAppear:(BOOL)animated方法。如方法名称所示,在屏幕上显示视图之前调用该方法。