我有一个名为“firstViewcontroller”的控制器,其中我有UITableView
,名为“discoveredInstanceTableView”。我想将UITableView
加载到名为“secondViewcontroller”的另一个UIViewController
我使用了以下代码,但它无法正常工作,它说找不到属性“discoveredInstanceTableView”...有人请帮助我:
在firstViewcontroller中:
IBOutlet UITableView *discoveredInstanceTableView;
在Secondviewcontroller中:
firstViewcontroller *vc1 = [[firstViewcontroller alloc]initWithNibName:@"firstViewcontroller" bundle:nil];
[self addChildViewController:vc1];
[self.myTableview addSubview:vc1.discoveredInstanceTableView];
答案 0 :(得分:0)
在viewcontroller2中声明
@property (nonatomic, strong) UITableView *table;
在viewcontroller1中创建表
tableView=[[UITableView alloc]initWithFrame:CGRectMake(10, 10, 250, 300) style:UITableViewStylePlain];
[self.view addSubview:tableView];
tableView.backgroundColor=[UIColor greenColor];
在调用viewcontroller2时将表传递给viewcontroller2
ViewController2 *v2=[[ViewController2 alloc]init];
v2.table=tableView;
UINavigationController *navigation=[[UINavigationController alloc]initWithRootViewController:v2];
[self presentViewController:navigation animated:YES completion:nil];
viewcontroller2中的使用全局变量
访问表[self.view addSubview:self.table];
答案 1 :(得分:0)
只有当你好奇地知道为什么上面的东西不起作用时,你问的是有效的
您正在做一些不允许的事情,这不能按照文档来完成。 但是,如果我们忘记了正确的错误方法,您可能会在表视图本身上添加一个表视图作为子视图,我确信您将表视图传递给可能未分配的表视图。
首先想想UITableView是如何工作的?它只是一个ScrollableView,它在其单元格上显示内容。
最终会建议您阅读TableView
编辑:来自上述评论
重要提示:您不应该嵌入UIWebView或UITableView对象 UIScrollView对象。如果这样做,可能会导致意外行为 因为两个对象的触摸事件可能混淆错误 处理。»由于UITableView是一个UIScrollView,这也适用于此。
在SecondViewController中显示TableView的可能替代方法
但是还有很多其他正确的方法,你应该跟进。
以编程方式或通过XIB / Storyboard单独创建TableView
添加委托和数据源(当有趣的事情发生时响应的方法,例如Cell将填充称为cellForRowAtIndexPath
)到当前的SecondViewController
定义所有必需的数据源方法并编写正确的代码。
如果您需要在单元格点击上执行某些操作,请添加特定的委托方法。
但是如果你想重用FirstViewController类TableView,只需创建一个CustomView并在其中添加TableView,只需将该视图添加到每个视图控制器类。
我希望它可以帮到你!!!