1

我的 RootViewController 有两个问题,它是这样定义的:

@interface RootViewController : UIViewController

注意:我已经在我的 RootViewController.m 中从 UITableViewDelegate 声明了以下方法,但它们被注释了。首先它是 UITableViewController,但后来我将其更改为 UIViewController。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

我如何唤醒我的应用程序:

- (void)applicationDidFinishLaunching:(UIApplication *)application {

    RootViewController *rootVC = [[RootViewController alloc] init];
    navigationController = [[UINavigationController alloc] initWithRootViewController:rootVC];
    navigationController.navigationBarHidden = YES;

    [rootVC release];

    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
}

注释结束;

  • 当我尝试构建应用程序时,他崩溃并出现以下错误

    2012-06-13 10:34:23.595 Astrobox[540:707] -[RootViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x151820

    2012-06-13 10:34:23.609 Astrobox[540:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RootViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x151820'

  • 如果我取消注释 UITableViewDelegate 中的方法,它在设备上运行,iOS 5.1.1 (92206),但我RootViewController看起来像UITableViewController- 屏幕上从上到下的分隔符,因为它的性质 tableView 反弹是启用的,我可以在这里轻松解决我的问题使用以下代码,但我不接受这是优雅的解决方案。

    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    self.tableView.bounces = NO;
    
4

3 回答 3

0

检查 Rootviewcontroller 的 nib 文件。它可以连接到 tableview 控制器。

于 2012-06-13T08:55:44.600 回答
0

不要将 UITableViewController 更改为 UIViewController.. 并编写

RootViewController *rootVC = [[RootViewController alloc] initwithnibname:@"YourXib/Nib name"];

代替

RootViewController *rootVC = [[RootViewController alloc] init];

那应该可以解决您的问题。还要检查tableview的委托和数据源。

于 2012-06-13T08:31:19.970 回答
0

首先请不要设置表视图委托和数据源,并检查您的视图是否正确加载。之后在视图中设置以下代码确实加载了..

tableView.delegate = self;
tableView.datasource = self;
and implement the < UITableViewDelegate , UITableViewDataSource > in your .h file.
and implement all the 4 methods what ever you have mentioned above and don't call it explicitly.
these are the delegate method they will call itself. 
于 2012-06-13T09:05:46.583 回答