2011-11-29 8 views
0

ここにコードがあります。 TableViewのどの行が押されたかに応じて、特定のビューをポップオーバーとして開くことを試みています。このコードで何が問題になっていますか? viewDidSelectRowAtIndexPathからPopoverviewとしてビューを表示しようとしています

UIStoryboard *sb; 
UIViewController *vc; 

// Get a reference to the Storyboard 
sb = [UIStoryboard storyboardWithName:@"MainStoryBoard" bundle:nil]; 
// Setup the appropriate View Controller 
if (indexPath.row == 0) 
{ 
    // Get the Date 
    vc = [sb instantiateViewControllerWithIdentifier:@"CalendarPopupViewController"]; 
} 
if (indexPath.row == 1) 
{ 
    vc = [sb instantiateViewControllerWithIdentifier:@"StreetAddressViewController"]; 
} 
// Get a reference to the area of the selected row from the Table View 
CGRect aFrame = [self.tableView rectForRowAtIndexPath:indexPath]; 

// Create the popup 
UIPopoverController *pc; 
pc = [[UIPopoverController alloc] initWithContentViewController:vc]; 

// Show the Popup 
[pc presentPopoverFromRect:aFrame inView:self.view  permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

アプリケーションは、SIGABRT信号で終了します。

答えて

0

上にブレークポイントを挿入してから、SIGABRT信号がアプリケーションを終了するまで下にステップしましたか?このようにして、あなたはそれを引き起こす行を正確に見つけることができます。

+0

申し訳ありませんが...はい私はそれをしました。最後のコード行は、アプリケーションが終了したときです。 –

+0

私は現時点で自分自身をテストすることができませんが、フレームは実際にフレームに設定されていますか?そして、self.viewは既存のビューですか? – hakonbogen

+0

self.viewはTableViewControllerを参照します。私はaFrameが "rectForRowAtIndex"メソッドによって適切に初期化されていると信じています。 –

関連する問題