我想在UIView中展示一個UITableViewController,我有一個解決方法,但我想明白爲什麼它的工作方式。如果UITableViewController添加到其他UIView,委派如何工作?
這是該方案的樣子: - 創建一個新的單一視圖應用
- 在IB增加了一個視圖到主視圖
- 創建一個出口的觀點:
@property (weak, nonatomic) IBOutlet UIView *placeholderView;
- 添加了一個新的帶XIB的UITableViewController到項目
- 更改了numberOfSectionsInTableView返回1,numberOfRowsInSection返回10,cellForRowAtIndexPath:
cell.textLabel.text = @"hello";
- 在視圖控制器文件viewDidLoad方法:
ORGTableViewController *tableView = [[ORGTableViewController alloc] initWithNibName:@"ORGTableViewController" bundle:nil];
[self.placeholderView addSubview:tableView.tableView];
現在的表出現在placeholderView,但它是空的。在TableViewController文件中調用InitWithStyle和ViewDidLoad方法。但是沒有任何numberOfSectionsInTableView,numberOfRowsInSection和cellForRowAtIndexPath被調用。
也試過在AppDelegate中添加此代碼didFinishLaunchingWithOptions方法,它是 - 工作如預期,文字的細胞出現:
ORGTableViewController *tableViewController = [[ORGTableViewController alloc] initWithNibName:@"ORGTableViewController" bundle:nil];
self.window.rootViewController = tableViewController;
所以它的工作原理,它看起來像代表團搞砸了不知何故我加的UITableViewController到UIView的,解決方法是容易...視圖控制器,viewDidLoad方法:
ORGTableViewController *tableViewController = [[ORGTableViewController alloc] initWithNibName:@"ORGTableViewController" bundle:nil];
tableViewController.tableView.delegate = tableViewController;
[self.placeholderView addSubview:tableViewController.tableView];
你知道爲什麼代表團以這種方式工作?
THX!