1

フレームワークを<QuartzCore/QuartzCore.h>組み込みました。

IBAction で私はこれを持っています:

- (IBAction)searchOptions:(id)sender {    
    FilterViewController *ctrl = [[FilterViewController alloc] initWithNibName:@"FilterViewController" bundle:nil];
    [UIView transitionFromView:self.view toView:ctrl.view duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:nil];

    [self.navigationController pushViewController:ctrl animated:NO];
}

ボタンをクリックすると、期待どおりにページがめくれます。

次のボタンをクリックすると (ページが元に戻るはずです)、次のエラーが表示されます。

スレッド 1: EXC_BAD_ACCESS(コード=2、アドレス=0x8)

問題は上記のアクションにあると思います(カールを解くアクションではありません)。

何がうまくいかなかったのですか?

編集:さらに1時間読んだ後、メモリの問題でしょうか?

4

2 に答える 2

1

UIViewよくわかりませんが、渡したコントローラーが保持されているとは思いません。ARC を使用していると仮定すると、 をプロパティにすることができFilterViewControllerます。

つまり、ヘッダーに次を追加します。

@class FilterViewController;

@interface YourViewController : UIViewController {
    FilterViewController *_filterViewController;
}

次に、実装で次のように変更します。

 _filterViewController = [[FilterViewController alloc] initWithNibName:@"FilterViewController" bundle:nil];
 [UIView transitionFromView:self.view _filterViewController duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:nil];
 [self.navigationController pushViewController:_filterViewController animated:NO];

確実に保持するためです。

于 2013-04-15T13:48:21.667 に答える