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
设置了dataSource
和delegate
?您的其余代码似乎看起来不错。另一个问题是为什么使用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