3

私はiPhoneアプリを構築しており、アプリの主題に関するナレッジベースのセクションを実装しました。テーブルビューとナビゲーションviewControllerを使用して、テーブル内のセルを選択すると、新しいビューコントローラーが作成され、ナビゲーションスタックに追加されます。

カールアップ/ダウンアニメーションを自分で実装しようとしましたが、実行時にこのエラーが発生します

親ビューコントローラーは、-[UIViewController transitionFromViewController:toViewController:duration:options:animations:completion:]'の呼び出しでレガシー包含を使用しています。

これがコードサンプルです

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

// change the accessory button to activity indicator
UITableViewCell *cell = [mTableView cellForRowAtIndexPath:indexPath];


SomeViewController *ad = [[SomeViewController alloc] initWithNibName:@"SomeViewController" bundle:[NSBundle mainBundle]];
ad.title = cell.textLabel.text;


[self.navigationController addChildViewController:ad];
[self.navigationController transitionFromViewController:self toViewController:ad duration:0.7 options:UIViewAnimationOptionTransitionCurlUp animations:^{} completion:^(BOOL completed){
    [ad release];
}];

ヘルプ、アドバイス、ヒントは大歓迎です!ありがとう!

4

1 に答える 1

6

カスタム包含ビューコントローラーがUINavigationViewControllerのサブクラスである場合、同じ例外が発生しました。封じ込めvcをUIViewControllerのサブクラスにしたとき、それは魅力のように機能しました。あなたの問題は違うかもしれません。アップルのドキュメントから:

このメソッドは、カスタムコンテナビューコントローラの実装によってのみ呼び出されることを目的としています。このメソッドをオーバーライドする場合は、実装でsuperを呼び出す必要があります。

このメソッドは、カスタムコンテナビューコントローラのインスタンスではなく、UINavigationViewControllerインスタンスで呼び出しています。

于 2012-06-14T00:30:49.380 に答える