如何访问viewController,iOS的属性

时间:2013-06-24 04:18:25

标签: ios uiviewcontroller storyboard uitableview appdelegate

我在故事板中有两个视图控制器UIViewController和一个UITableViewController。我想从UIViewController访问UITableViewController的属性。我该怎么做呢?我是否需要使用AppDelegate(如何?),还是有其他方法?

编辑我目前正在向appDelegate添加以下代码,该代码具有以下属性:tableViewController。

MyTableViewController *tvc = [[MyTableViewController alloc]initWithNibName:@"MyTableViewController" bundle:nil];
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.tableViewController = tvc;

我试图在另一个viewController中分配tableViewController的属性,如下所示,但该属性为NULL。

MyTableViewController *tvc = (MyTableViewController*)appDelegate.tableViewController;

2 个答案:

答案 0 :(得分:9)

如果要首先访问其他类的属性,则需要将.h文件导入到所需的位置,然后创建该类的对象,然后访问所需的属性。

假设您需要访问第二个视图控制器属性 FirstViewController。然后在FirstViewController.m中定义SecondViewController.h文件并生成对象

SecondViewController *controller = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:Nil];

controller.property;

答案 1 :(得分:1)

将所需的子视图控制器公开为包含它们的视图控制器的属性。

将您的根视图控制器公开为您的应用委托的属性,并将它们合成。

如果要访问其他UIViewController,请首先获取对appDelegate的引用:

MyAppDelegate* myAppDelegate = [[UIApplication sharedApplication] delegate];

然后只需使用您的属性链即可访问所需的视图控制器。

SubSubViewController* ssvc = myAppDelegate.rootViewController.subViewController.subSubViewController;