如何使用2 UITableViewController构建iOS Master-Detail应用程序?

时间:2012-12-13 04:11:32

标签: ios ipad uitableview master-detail

我正在尝试使用UITableView控制器创建一个Master-Detail应用程序作为主控和详细信息。我需要做的是在为细节UITableViewController选择一行时传递8个数据串。完成此任务的最佳方法是什么?我计划将详细信息UITableViewController作为静态单元格,而非动态单元格。

1 个答案:

答案 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]