iOs7 で正しく動作するようにアプリを更新しようとしています。
iOS 5 および 6 では、これは完全に機能しました。
if ([segue.identifier isEqualToString:@"popover"])
{
FavoritesViewController *vc = segue.destinationViewController;
CGFloat width = 200.0;
CGRect rect = [vc.tableView rectForSection:[vc.tableView numberOfSections] - 1];
CGFloat height = CGRectGetMaxY(rect);
if ([segue isKindOfClass:[UIStoryboardPopoverSegue class]])
{
_filterPopoverController = [(UIStoryboardPopoverSegue *)segue popoverController];
[_filterPopoverController setPopoverContentSize:CGSizeMake(width, height)];
[_filterPopoverController setDelegate:self];
}
}
}
これを使用して、すでに画面に表示されているかどうかを確認します
- (IBAction)touchedFilterButton:(UIBarButtonItem *)sender
{
if (_filterPopoverController == nil)
{
[self performSegueWithIdentifier:@"popover" sender:self];
}
else
{
[_filterPopoverController dismissPopoverAnimated:YES];
_filterPopoverController = nil;
}
}
この行を削除すると
_filterPopoverController = [(UIStoryboardPopoverSegue *)segue popoverController];
動作しますが、幅/高さを設定できず、画面に表示されているかどうかを確認できません。