1

如何创建带有集成 UINavigationController 的 UIPopoverController,以便能够在 UIPopoverController 内左右滑动视图(带导航栏)。

更新:我像这样打开弹出窗口

- (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];
    }
}

我创建了一个控制器,它有一个 NSTableViewController 作为 UINavigationController 中的根控制器

@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)。使固定?

SOLUTION: 找到解决方案:popOver table view

4

1 回答 1

2

您创建一个新的 nib 和一个 UIViewController。作为顶级视图,这个 nib 有一个普通的 jane UIView 和一个 UINavigationController。UINavigationController 的顶部 UIViewController 是您要首先显示的任何视图控制器。

然后,您在弹出框控制器中显示此笔尖。在确实加载的视图中,您执行以下操作:

-(void)viewDidLoad
{
    [self.view addSubview:self.navigationController.view];
}

这会将导航控制器的视图添加到 nib 中的视图中,从而可以显示它。

于 2011-04-18T07:13:20.793 回答