UITableView不将样式设置为UITableViewGrouped,坚持使用Plain



我不知道为什么,但视图控制器不想采用分组样式。

  • 此视图控制器没有 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,但这比添加子视图然后处理方向问题要痛苦得多。

希望能帮助其他人解决这个奇怪的问题,并感谢拉文德拉和欧文的回复。

最新更新