【发布时间】:2011-08-23 01:13:05
【问题描述】:
当 UISPlitViewControler 处于弹出模式时,从主视图中选择一行时。不是应该自动解散吗?我怎样才能在那里修复它?
通常我会使用[self.popoverController dismissPopoverAnimated:YES];,但在这种情况下无法识别popoverController。
我认为UISplitViewController 应该自动执行此操作?
这是我的 detailViewCONtroller 中的 UISplitViewDelegate 代码:
- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController: (UIPopoverController *)pc
{
barButtonItem.title = @"Medical Codes";
NSMutableArray *items = [[self.toolbar items] mutableCopy];
[items insertObject:barButtonItem atIndex:0];
[self.toolbar setItems:items animated:YES];
[items release];
}
// Called when the view is shown again in the split view, invalidating the button and popover controller.
- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
NSMutableArray *items = [[self.toolbar items] mutableCopy];
[items removeObjectAtIndex:0];
[self.toolbar setItems:items animated:YES];
[items release];
}
在我的应用委托中,我有:
@property (nonatomic, retain) IBOutlet UISplitViewController *splitViewController;
@property (nonatomic, retain) IBOutlet DetailViewControlleriPad *rightViewController;
@property (nonatomic, retain) IBOutlet RootViewController * leftViewController;
而且这些属性都与 IB 挂钩。 RootViewController 推送到其他 tableviews,当它们在 popover 模式下被选中时需要关闭。
编辑
- (void)setDetailItem:(id)newDetailItem
{
if (detailItem != newDetailItem)
{
[detailItem release];
detailItem = [newDetailItem retain];
[self.myTableView reloadData];
}
}
【问题讨论】:
标签: iphone objective-c cocoa-touch ipad uiview