我正在尝试使用UITableView
控制器创建一个Master-Detail应用程序作为主控和详细信息。我需要做的是在为细节UITableViewController
选择一行时传递8个数据串。完成此任务的最佳方法是什么?我计划将详细信息UITableViewController
作为静态单元格,而非动态单元格。
答案 0 :(得分:0)
您可以在主视图控制器中创建变量以访问详细视图控制器。然后,在主视图控制器的viewDidLoad中,您可以设置此变量,从此时起,主视图控制器中对self.detailViewController
的所有调用都将被发送到详细视图控制器。示例代码:
在MasterViewController.h中:
@class DetailViewController // do not use include here to avoid reference cycles, just identify DetailViewController as a class
@interface MasterViewController : UITableViewController
// in the interface, declare property to access detail view controller
@property (strong, nonatomic) DetailViewController *detailViewController;
@end
在MasterViewController.m中:
#include "DetailViewController.h"
// in the implementation, synthesize
@interface DetailViewController : UITableViewController
@synthesize DetailViewController;
// when the view loads
- (void)viewDidLoad {
// call super method
[super viewDidLoad];
// if you used XCode's built-in Matser/Detail application, this will set detailViewController to the detail view controller
self.detailViewController = (ITLDetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
}
这样,当您在主视图控制器代码中时,可以调用self.detailViewController.someProperty
或[self.detailViewController someMethod]
。