带UINavigationController的ipad UIPopoverController
如何使用集成的UIPopoverController创建UIPopoverController,以便能够在UIPopoverController中左右滑动视图(带有导航栏) 更新: 我像这样打开弹出窗口带UINavigationController的ipad UIPopoverController,ipad,uipopovercontroller,popover,Ipad,Uipopovercontroller,Popover,如何使用集成的UIPopoverController创建UIPopoverController,以便能够在UIPopoverController中左右滑动视图(带有导航栏) 更新: 我像这样打开弹出窗口 - (void)showSettingsViewAtSenderForIPad:(id)sender { if (!settingsPopoverController_) { SettingsPopoverController *settings = [[Set
- (void)showSettingsViewAtSenderForIPad:(id)sender
{
if (!settingsPopoverController_)
{
SettingsPopoverController *settings = [[SettingsPopoverController alloc] init];
settings.valuesGeneratorOptions = valuesGeneratorOptions_; // setting variables
self.settingsPopoverController_ = [[[UIPopoverController alloc] initWithContentViewController:settings] autorelease];
[settingsPopoverController_ setDelegate:self];
[settingsPopoverController_ setPopoverContentSize:CGSizeMake(320, 480)];
[settings release];
}
if (!infoPopoverController_.popoverVisible)
{
[settingsPopoverController_ presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
}
}
我在UINavigationController中创建了一个控制器,其中有一个NSTableViewController作为根控制器
@interface SettingsPopoverController : UIViewController
{
ValuesGeneratorOptions *valuesGeneratorOptions;
IBOutlet SettingsViewController *settingsViewController;
IBOutlet UINavigationController *navigationController;
}
...
@implementation SettingsPopoverController
...
- (void)viewDidLoad
{
self.settingsViewController.valuesGeneratorOptions = self.valuesGeneratorOptions;
[self.view addSubview:self.navigationController.view];
[super viewDidLoad];
}
...
end
问题是,表格不能在弹出窗口中滚动。它还忽略表格样式(未调用initWithStyle)。
修理
解决方案:
找到解决方案:创建新的nib和UIViewController。作为顶级视图,这个nib有一个简单的UIView和一个UINavigationController。UINavigationController的顶部UIViewController是您希望首先显示的任何视图控制器 然后在popover控制器中显示此nib。在视图中,您可以执行如下操作:
-(void)viewDidLoad
{
[self.view addSubview:self.navigationController.view];
}
这会将导航控制器的视图添加到nib中的视图中,从而允许显示该视图