我正在尝试在Container视图中插入自定义UITableViewController。容器视图放在静态UITableView的单元格内,如下图所示。
http://i.stack.imgur.com/A762B.png
我只想要一种方法在同一个屏幕中将静态和动态单元格结合起来。
在Identity Inspector中,当字段Class为空(即标准的UITableViewController)时,它会在单元格内显示一个空的动态表。但是当我在该字段中放置我的自定义类名(扩展UITableViewController)时,我得到一个NSInternalInconsistencyException:
[UITableViewController loadView] loaded the "Enx-aT-Rum-view-zY2-9U-Z6d" nib but didn't get a UITableView.
这些是MyCustomUITableViewController的内容:
@implementation MyCustomUITableViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 2;
}
@end
我必须承认,我仍然不了解Container View背后的所有逻辑,但我只想在内部显示一个视图(不进行任何交换或其他)。
任何帮助将不胜感激,谢谢!
答案 0 :(得分:-1)
首先让我指出这里的问题 -
问题1:您无法在另一个控制器内部安装控制器。这意味着,在Static tableview中,您不能拥有动态tableview控制器。
解决方案1:您可以拥有动态TableView。
问题2:您无法在View Controller中拥有静态Tableview。如果你想要一个静态表视图,那么你需要一个UITableViewController而不是UIViewController。
解决方案2:您只需删除您拥有的ViewController并替换为UITableViewController。
现在要实现一个可以在静态tableview中拥有动态TableView的控制器,你需要在静态表的ViewController中实现动态表的数据源,这将是一个非常糟糕的做法。 静态表不需要知道有关动态表的任何信息,至少应该知道动态表中将填充的数据。但是,如果您想在静态tableView中使用动态tableview,那么静态tableview的控制器需要实现UITableViewDatasource。
所以,你可能想重新考虑结构。