2

我在情节提要中有两个视图控制器 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;
4

2 回答 2

9

如果您想首先访问另一个类的属性,您需要在您想要的位置导入 .h 文件并创建该类的对象,然后访问您想要的属性。

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

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

controller.property;
于 2013-06-24T04:38:48.397 回答
1

Expose the desired sub-view controllers as properties of the view controller that contains them.

Expose your root view controller(s) as properties of your app delegate, and synthesize them also.

When you want to access a different UIViewController, first obtain a reference to your appDelegate:

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

Then just use your chain of properties to get access to your desired view controller.

SubSubViewController* ssvc = myAppDelegate.rootViewController.subViewController.subSubViewController;
于 2013-06-24T06:05:08.833 回答