iOS:用新视图替换IBOutlet

时间:2013-11-26 23:12:53

标签: ios objective-c cocoa-touch uitableview interface-builder

我有一个我在IB中创建的UITableView,并且在我的视图控制器中有一个插座tblHome。我希望如果用户没有运行iOS7,那么表格将是普通的(它被设置为IB中的分组)。

我知道一旦创建了样式就无法改变它,所以我必须改变它。如何用新的表替换现有的表?

以下无效

if([[[UIDevice currentDevice] systemVersion] floatValue] < 7)
{
    tblHome = [[UITableView alloc] initWithFrame:CGRectMake(tblHome.frame.origin.x, tblHome.frame.origin.y, tblHome.frame.size.width, tblHome.frame.size.height) style:UITableViewStylePlain];
}

2 个答案:

答案 0 :(得分:0)

这里还没有足够的信息。你在哪里检查和覆盖?

如果您不使用initWithNibName:来初始化您的UIViewController,它将不会从IB中提取设置,您必须通过addSubview:手动添加tableView

使用调试器逐步执行代码,并确保在子iOS 7设备上实际按预期执行该行。

答案 1 :(得分:0)

初始化tableview时设置表格样式。

以编程方式使用UITableView,如下所示

 NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[vComp objectAtIndex:0] intValue] >= 7){
    tblHome = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) style:UITableViewStyleGrouped];
 }
else{
     tblHome = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) style:UITableViewStylePlain];
}