このように定義された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;