1

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

  • 此视图控制器没有 xib 文件。
  • init时,由initWithStyle:UITableViewGrouped完成
  • 调试 init,它接收 Grouped 样式
  • 尝试覆盖 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

如您所见,样式为 Grouped,我用 Grouped 覆盖了它。然后下一行是平原?!

任何帮助深表感谢。我的替代方法是附加一个 xib 并希望它会这样设置:S

先感谢您

编辑:这是我调用实例的地方。

AddContactViewController *addContact = [[AddContactViewController alloc]initWithStyle:UITableViewStyleGrouped];
    [addContact setCustomerID:customerID];
    [addContact setDelegate:self];
    [self.navigationController pushViewController:addContact animated:YES];

上面的 initWithStyle 是 AddContactViewController.m 和 (lldb) 位是我的调试打印输出。

希望清除它好一点。恐怕我不能透露太多代码。

4

2 回答 2

0

通过 initWithFrame 创建您的 tableviewcontroller & 然后将样式 UITableViewStyleGrouped 分配给它的 tableViewStyle 属性

欧文在评论中说的最后一个选项:
创建一个 ViewController
声明一个UITableView *myTableView属性

[[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped]

将此 myTableView 添加到 ViewController 的视图中[self.view addSubView:myTableView]

于 2013-01-31T13:26:26.333 回答
0

感谢您的回复。我找到了一个更容易解决我的问题的方法。

我添加了一个新的 xib,并将其称为与我的控制器 AddContactViewController.xib 相同的名称。然后在 Interface Builder 中,我将 File Owner 类更改为 AddContactViewController。

我在对象中添加了一个 UITableView,并将文件所有者的视图连接到 UITableView。然后将代表和数据源连接回文件所有者。

之后就设置好了。我通过 IB 中的 tableview 上的属性将样式更改为分组。

现在已经完成了。我保留了相同的创建实例。但是在 AddContactViewController 我替换了

self = [super initWithStyle:UITableViewStyleGrouped];

self = [super initWithNibName:@"AddContactViewController" bundle:nil];

就是这样!我最终得到了一个我不会使用的额外 xib,但它比添加子视图然后处理方向问题要少得多。

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

于 2013-01-31T14:43:23.403 回答