0

ポップオーバーを使用して画像を表示しました。ユーザーがボタンをタッチすると、ポップオーバーがスライドショーとともに表示されます。

私はこのようにポップオーバーを初期化します: `

- (IBAction)showPopover:(UIButton *)sender {
    myPopover *content = [[myPopover alloc] init];
    detailViewPopover = [[UIPopoverController alloc] initWithContentViewController:content];
    detailViewPopover.popoverContentSize = CGSizeMake(600., 400.);
    detailViewPopover.delegate = self;

    [detailViewPopover presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    [content release];
}

`detailViewPopoverはUIPopoverControllerです、私はそれを私の.hと宣言します。

私はこのようにポップオーバーを却下します: `

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
    // If a popover is dismissed, set the last button tapped to nil.
    [popoverController release];

} `

アプリを実行すると、「-[UIPopoverController release]:メッセージが割り当て解除されたインスタンス0x1b29b0に送信され、アプリがクラッシュするまで機能します... UIPopoverControllerを解放する時間が長すぎることは理解していますが、どこにあるのかわかりません。私の実装は良いですか?

ご協力いただきありがとうございます

さらに情報が必要な場合はお知らせください。投稿を編集します

4

1 に答える 1

1

ここで popoverController を解放しないでください。

現在のビュー コントローラーの dealloc メソッドで、detailViewPopover で release を呼び出す必要があります。

- (void) dealloc
{
    [detailViewPopover release];
    [super dealloc];
}
于 2011-04-06T14:54:00.507 に答える