2010-02-10 48 views
1

我是iphone开发新手。我正在创建你的RSS feed。在第一个表格视图中,我在每个单元格中显示标题,发布的数据和图像。所有这些内容都是通过XML解析从XML页面中检索的。还解析并检索了要显示的描述并将其存储在一个可变数组中。单击一行时,它将导航到另一个表视图,其中我将详细显示所有内容(标题,日期,摘要)。我想在两个视图中使用相同的可变数组。我如何实现它?或者我应该再次在子视图中解析XML文件以显示所有内容。请指导我。谢谢。如何将变量的值传递给iphone中的子视图?

+1

小的修正你的问题:它不叫子视图,只是视图控制器。因为你可能误解了UIView子视图的概念。 – 2010-02-10 18:23:12

回答

1

您可以继承第二个视图的子类,添加一些实例变量,并在创建要推送的视图时对其进行设置。传递你已经为第一个表视图解析过的任何东西,然后传递你还没有的任何信息,只需在第二个视图中解析即可。

或者,您可以使用核心数据并传递托管对象上下文以为整个应用程序提供持久数据后备存储。不过,这可能有点多。

+0

感谢您的建议 – Warrior 2010-02-10 18:25:54

2

被修改

可能要重写细节视图控制器上的initWithNibName方法。

// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil withMutableArray: (NSMutableArray *) theArray withAnotherArray: (NSMutableArray *) theOtherArray{ 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Here you should declare a local variable with the property & synthesize to store the array that is being passed 
     myLocalArray = theArray; 
     myOtherLocalArray = theOtherArray; 
    } 
    return self; 
} 

请记住在.h文件中声明此方法,以便前面的控制器知道它存在。

祝你好运。

+0

感谢您的建议 – Warrior 2010-02-10 18:26:28

+0

如果我有2个可变数组,哪个数组将作为参数传递给此方法 – Warrior 2010-02-10 18:29:13

+0

嗨,我编辑了答案。 – 2010-02-10 18:33:22

0

如果有一个按钮,调用:

PickerViewController *pvController = [[PickerViewController alloc] init]; 
pvController.hidesBottomBarWhenPushed = YES; 
pvController.BrillianMustache = BrilliantMustache; 
pvController.passedVariable = BrilliantMustache.varToPass; 
[self.navigationController pushViewController:pvController animated:YES]; 
[pvController release];Initialize the variable in the receiving view. 

然后,你必须有BrilliantMustache(在这种情况下,核心数据实例),和passedPickerVariable创建并在接收视图(pvController)合成。

然后在vewDidLoad

- (void)viewDidLoad { 
    NSLog(@"%@",self.passedVariable); 
} 
相关问题