两个不同的tableview xCode之间的冲突

时间:2014-08-14 09:30:49

标签: ios objective-c xcode uitableview

我的两个桌面视图并排存在严重问题。我创建了一个界面,我可以看到文件夹(名为Collection),如果点击按钮,它会显示有关数据的信息(命名为Likes)。

但是,我真的不明白为什么有很多方法可行,而且不能使用cellForRowAtIndexPath。 这就是问题所在:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
   if (tableView == _collectionTableView)

所以,这只是不起作用。他让我每次都去sigabrt。因为我的所有功能都有3种选择: 如果你是_collectionTableView,你去吧。如果你是" _LikesTableView",那么你去吧,那就是它没有。

但是,如果我把_LikesTableView作为第一选择,除了它之外的所有工作都会发给我_LikesTableView,即使其他方法如下:

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

让我成为_CollectionTableView ...所以我的日志非常有趣它来自"我是_CollecTableView"到了"我是_LikesTableView"仅适用于cellForRowAtIndexPath。

我无法让我的_CollectionTableView正常工作,而我的_LikesTableView似乎在#34; if"取代"否则如果"。

所以我想我不能很好地使用这个方法,因为我不应该在这个方法中提到我的tableview的名字...所以,如果有人能够帮助我,真的,非常非常感谢!

非常感谢。 编辑:着名的日志:

2014-08-14 11:40:07.269 [TestLog] Je le prend bien en compte le collectableview
2014-08-14 11:40:07.269 [TestLog] Je le prend bien en compte le collectableview
2014-08-14 11:40:07.270 [TestLog] Je le prend bien en compte le collectableview
2014-08-14 11:40:07.842 [TestLog] Je passe bien dans le cellforrow
2014-08-14 11:40:07.843 [TestLog] Je suis LikesTableView
2014-08-14 11:40:07.950 [TestLog] Je passe bien dans le cellforrow
2014-08-14 11:40:07.951 [TestLog] Je suis LikesTableView
2014-08-14 11:40:08.070 [TestLog] Je passe bien dans le cellforrow
2014-08-14 11:40:08.070 [TestLog] Je suis LikesTableView
2014-08-14 11:40:08.191 [TestLog] Je passe bien dans le cellforrow
2014-08-14 11:40:08.191 [TestLog] Je suis LikesTableView
2014-08-14 11:40:08.286 [TestLog] Je passe bien dans le cellforrow
2014-08-14 11:40:08.287 [TestLog] Je suis LikesTableView
2014-08-14 11:40:08.355 [TestLog] Je passe bien dans le cellforrow
2014-08-14 11:40:08.356 [TestLog] Je suis LikesTableView
2014-08-14 11:40:08.428 [TestLog] Je passe bien dans le cellforrow
2014-08-14 11:40:08.429 [TestLog] Je suis LikesTableView
2014-08-14 11:40:08.502 [TestLog] Je passe bien dans le cellforrow
2014-08-14 11:40:08.502 [TestLog] Je suis LikesTableView

希望能帮助> ____<"

2 个答案:

答案 0 :(得分:1)

如何考虑为tableView使用标记。

在您初始化它的collectionTableView的第一个设置标记,例如viewDidLoad

_collectionTableView.tag = 1;

并在您的cellForRowAtIndexPath,而不是if (tableView == _collectionTableView),使用tag来检查哪个tableView正在调用方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   if (tableView.tag == 1)
   {
    ///do something
   }
   else
   {
    ///do something
   }
}

答案 1 :(得分:1)

我同意凯西使用标签进行比较的方法。 此外,您可以为每个表视图提供单独的数据源,以避免混淆(如果在您的设计中可行)。因此应该创建另一个符合UITableViewDataSource的类。可以将此新类指定为其中一个tableView的dataSource。