tableView中的iOS if语句:numberOfRowsInSection:不起作用

时间:2013-03-28 17:15:40

标签: ios objective-c cocoa-touch uitableview

我正在尝试使用视图标签来确定当前正在显示的视图,但是当我使用此代码时

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (self.view.tag != 3){
     NSLog(@"view is not 3");
     return 10;
    }
else{
     NSLog(@"view is 3");
     return 20;
    }
}

对于带有标记3的视图,没有设置正确的行数,尽管它对我的所有其他视图都有效。例如,在我使用1标记的视图中,将记录view is not 3,但在我的标记为3的视图中,不会记录任何内容。任何人都知道为什么这不符合我的要求?

2 个答案:

答案 0 :(得分:0)

self.view是View的主要ViewController。您可能需要做的是获取对TableView的引用。

更改为:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (tableView.tag != 3){
     NSLog(@"view is not 3");
     return 10;
    }
else{
     NSLog(@"view is 3");
     return 20;
    }
}

答案 1 :(得分:0)

这个问题本身就是一个粗心的错误,我没有设置我的dataSource和委托。