【发布时间】:2012-11-30 22:16:09
【问题描述】:
我正在尝试使用UITableView 控制器作为主控和详细信息创建一个主从应用程序。我需要做的是在选择行时将 8 个数据字符串传递给详细信息UITableViewController。实现这一目标的最佳方法是什么?我计划将细节UITableViewController 作为静态单元格,而不是动态单元格。
【问题讨论】:
标签: ios ipad uitableview master-detail
我正在尝试使用UITableView 控制器作为主控和详细信息创建一个主从应用程序。我需要做的是在选择行时将 8 个数据字符串传递给详细信息UITableViewController。实现这一目标的最佳方法是什么?我计划将细节UITableViewController 作为静态单元格,而不是动态单元格。
【问题讨论】:
标签: ios ipad uitableview master-detail
您可以在主视图控制器中创建一个变量来访问详细视图控制器。然后,在主视图控制器的 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]。
【讨论】:
: UIViewController 更改为: TableViewController
@property (weak, nonatomic) DetailViewController *detailViewController;改成@property (strong, nonatomic) DetailViewController *detailViewController;