【问题标题】:UITableViewController Methods are not being calledUITableViewController 方法没有被调用
【发布时间】:2011-08-28 01:04:55
【问题描述】:

正如标题所说,我的 tableview 控制器方法都没有被调用。

我创建表格视图的步骤如下。

1) 我基于 UITableViewController 创建了一个新文件并选择了 create with xib 选项。我将我的文件命名为 myStuffViewController。

2) 我有一个 UIViewController 的 rootview 控制器。在这个视图中,我有一个导航控制器,我想将我的 tableview 控制器推到某个点上。

3) 我像这样设置我的 tableview 和导航控制器

mystuff = [[MyStuffViewController alloc]initWithNibName:@"MyStuffViewController"bundle:[NSBundle mainBundle]];
    accountView = [[AccountView alloc] initWithNibName:@"Login" bundle:[NSBundle mainBundle]];




    accountViewNavController = [[UINavigationController alloc] init];
     accountViewNavController.delegate = self;


    NSArray *ar= [NSArray arrayWithObjects:accountView,mystuff, nil];
    [accountViewNavController setViewControllers:ar animated:NO];
    [accountViewNavController popToRootViewControllerAnimated:NO];
    accountView.title=@"Login";

4) 然后当用户按下按钮时,我想像这样将表格视图控制器推入堆栈。

[accountViewNavController pushViewController:mystuff animated:YES];

我什至尝试调用 [self.tableView reloadData],但没有调用任何方法。

有人能提出为什么我的表格视图方法没有被调用吗?

编辑 1

我尽可能清楚地说明我的头文件是什么样子的。看来我没有遗漏任何东西。

@interface MyStuffViewController : UITableViewController<UITableViewDataSource,UITableViewDelegate> {
    RemixView *remixView;
    NSMutableArray *remixListArray;
    TBXML*tbxml;


}
@property(nonatomic,retain)NSMutableArray *remixListArray;
@property(nonatomic,retain)RemixView *remixView;
@property(nonatomic ,retain)TBXML *tbxml;

-(void)fetchRemixList:(NSString *)uid key:(NSString *)k1;
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
@end

【问题讨论】:

  • 请检查您是否为tableview委托和数据源连接或编码
  • hmmmm,很抱歉,但我没有完全理解。我已经为 tableview 委托编码,委托方法是由 xcode 生成的。从我所见,视图也通过 xcode 自动连接到控制器。你是这个意思吗?
  • 我支持你纳拉亚南。只需确保已设置委托即可。
  • 好的,如果您对委托指向正确的位置完全满意,那么接下来要检查的是委托方法的签名 - 即它是否完全符合其应有的状态?绝对确定签名正确的最简单方法是从文档中复制它。

标签: iphone uitableview


【解决方案1】:

检查

  1. 您在 .h 文件中声明您实现了两个表视图委托 UITableViewDelegate 和 UITableViewDatasource

  2. 在 NIB 中,确保您在文件所有者中链接到您的委托,或者如果您以编程方式创建了 TableView,请确保您也设置了委托 ivar。

然后看看委托方法是否开始被调用

【讨论】:

  • 我相信这两件事我都做过。我正在使用生成的笔尖
  • 在笔尖 - 右键单击​​文件的所有者并检查没有冲突(显示为黄色);您也可以右键单击表格以从另一个角度了解所有 IBOutlets 和 IBActions 和代表指向的位置
  • nib 源代理和视图都指向文件所有者。文件所有者视图数据源都指向表视图....我一直对使用 IB 感到痛苦。我退出这个并尝试在代码中完成它。
  • 好的,我发现了一些奇怪的东西。在一个示例 nib 文件中,我发现 tableview 有 2 个引用插座,tableview 和 view。我的表视图只有一个名为 view 的引用出口。没有tableview之一,我看不到如何在IB中添加它
  • 你会恨我的...我将部分数量设置为 0。感谢您的所有努力
猜你喜欢
  • 2012-03-13
  • 2014-06-02
  • 2017-02-24
  • 2015-02-23
  • 2013-12-19
  • 1970-01-01
  • 2020-09-19
  • 1970-01-01
相关资源
最近更新 更多