1

このように定義されたRootViewControllerに2つの問題があります。

@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'

  • iOS 5.1.1(92206)デバイスで実行されているUITableViewDelegateのメソッドのコメントを外すと、画面上で上から下へのセパレーターのRootViewControllerように表示されます。そのため、tableViewバウンスが有効になっているため、ここで問題を簡単に修正できます。UITableViewController次のコードで、しかし私はこれをエレガントな解決策として受け入れません。

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

3 に答える 3

0

UITableViewControllerをUIViewController..に変更しないでください。

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

それ以外の

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

それはあなたの問題を解決するはずです。また、テーブルビューのデリゲートとデータソースを確認してください。

于 2012-06-13T08:31:19.970 に答える
0

Rootviewcontroller の nib ファイルを確認してください。テーブルビューコントローラーに接続されている可能性があります。

于 2012-06-13T08:55:44.600 に答える
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 に答える