我不知道为什么,但视图控制器不想采用分组样式。
- 此视图控制器没有 xib 文件。
- 初始化时,由 initWithStyle:UITableViewGrouped 完成
- 调试 init,它接收分组样式
- 尝试覆盖 self = [super initWithStyle:UITableViewGrouped];
(id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:UITableViewStyleGrouped]; if (self) { //Checking on this line self.tableView.style = UITableViewPlain!!! (lldb) p style (UITableViewStyle) $1 = UITableViewStyleGrouped (lldb) p [[self tableView] style] (UITableViewStyle) $2 = UITableViewStylePlain
如您所见,样式显示分组,我用分组覆盖了它。那么下一行是平原?!
任何帮助都非常感谢。我的替代方案是将 xib 附加到它,希望它会这样设置:S
提前谢谢你
编辑:这是我调用实例的地方。
AddContactViewController *addContact = [[AddContactViewController alloc]initWithStyle:UITableViewStyleGrouped];
[addContact setCustomerID:customerID];
[addContact setDelegate:self];
[self.navigationController pushViewController:addContact animated:YES];
上面的initWithStyle是AddContactViewController.m,(lldb)位是我的调试打印输出。
希望能更好地清除它。恐怕我不能透露太多代码。
通过 initWithFrame 创建 tableviewcontroller,然后将样式 UITableViewStyleGrouped 分配给其 tableViewStyle 属性
欧文在评论中说的最后一个选项:
创建一个视图控制器
声明
一个UITableView *myTableView
属性
[[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped]
将此 myTableView 添加到 ViewControoler 的视图中,[self.view addSubView:myTableView]
感谢您的回复。我找到了解决问题的更简单的方法。
我添加了一个新的 xib,并调用它与我的控制器 AddContactViewController.xib 相同。然后在界面生成器中,我将文件所有者类更改为 AddContactViewController。
我在对象中添加了一个 UITableView,并将文件所有者的视图连接到 UITableView。然后将委托和数据源连接回文件所有者。
之后就设置好了。我将样式更改为通过 IB 中表格视图上的属性进行分组。
现在这已经完成了。我保留了相同的创建实例。但是在AddContactView控制器中,我替换了
self = [super initWithStyle:UITableViewStyleGrouped];
跟
self = [super initWithNibName:@"AddContactViewController" bundle:nil];
就是这样!我最终得到了一个我不会使用的额外 xib,但这比添加子视图然后处理方向问题要痛苦得多。
希望能帮助其他人解决这个奇怪的问题,并感谢拉文德拉和欧文的回复。