UITableView 在 3.2 中工作,但在 4.0(模拟器和设备)中没有触发任何 tableview 方法

Posted

技术标签:

【中文标题】UITableView 在 3.2 中工作,但在 4.0(模拟器和设备)中没有触发任何 tableview 方法【英文标题】:UITableView works in 3.2 but no tableview methods are firing in 4.0 (simulator & device) 【发布时间】:2010-07-16 01:37:14 【问题描述】:

我刚遇到一种情况,我的 tableview 实现在 3.2 中工作,但未能触发 ios 4 中的任何 tableview 方法。有问题的视图控制器被定义为 UIViewController 并设置为采用 UITableViewDataSource 和UITableViewDelegate 协议,我将 tableview 连接为视图的数据源并通过 IB 委托。

.h 中的定义:

@interface FooViewController : UIViewController <UITableViewDataSource,
    UITableViewDelegate> 

    IBOutlet UITableView *itemTable;


@property (nonatomic, retain) IBOutlet UITableView *itemTable;

.m:

@synthesize itemTable;

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 

    NSLog(@"numberOfSectionsInTableView fired!");
    return 1;


- (NSInteger)tableView:(UITableView *)tableView
    numberOfRowsInSection:(NSInteger)section 
    NSLog(@"numberOfRowsInSection fired!");
    return 2;


- (UITableViewCell *)tableView:(UITableView *)tableView
    cellForRowAtIndexPath:(NSIndexPath *)indexPath 

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    

return cell;

这似乎在

【问题讨论】:

【参考方案1】:

您是否为itemTable 设置了dataSourcedelegate?您的其余代码似乎看起来不错。另一个问题是为什么使用UiViewController 而不是UITableViewController

我一直在使用UITableViewController,它工作得很好,你仍然可以只实现你已经实现的简单的基本方法。

【讨论】:

WRT 数据源/委托:是的,通过 IB 连接。更多发现:当文件所有者通过 presentModalViewController 推入堆栈时,它似乎只有在 iOS 4 中不起作用。当我通过导航控制器推动它时,它似乎工作正常。我正在通过 presentModalViewController 进行推送,因为它是用于展示应用内购买内容的滑动屏幕。所以这个问题现在已经得到了改进——当通过 presentModalViewController 推送父视图控制器时,不会调用 tableView 方法。这似乎是它在 iOS 4 中“崩溃”的地方......或者至少改变了行为。

以上是关于UITableView 在 3.2 中工作,但在 4.0(模拟器和设备)中没有触发任何 tableview 方法的主要内容,如果未能解决你的问题,请参考以下文章

如何让 scrollViewDidScrollToTop 在 UITableView 中工作?

在 cellForRowAt 中不工作 UITableView 但 numberOfRowsInsection 在 Swift 中工作

让 UIImagePickerView 在 iPad 应用程序的 UITableView 中工作

delaysContentTouches = false 不在 UITableView Swift 中工作?

整数文字 '115000159351' 在存储到 'Int' 时溢出,但在一个项目中工作正常,但在另一个项目中工作正常 - Swift

jquery 不在部署中工作,但在本地 nuxtjs 中工作?