ipad UIPopoverController с UINavigationController - PullRequest
1 голос
/ 18 апреля 2011

Как я могу создать UIPopoverController со встроенным UINavigationController, чтобы иметь возможность скользить представления внутри UIPopoverController слева направо (с панелью навигации).

UPDATE: Я открываю всплывающее окно, как это

- (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 не вызывается). Фикс?

РЕШЕНИЕ: Нашел решение: popOver табличное представление

1 Ответ

2 голосов
/ 18 апреля 2011

Вы создаете новый кончик и UIViewController. Этот перо, как и его вид верхнего уровня, имеет простой jane UIView и UINavigationController. Верхний UIViewController UINavigationController - это любой контроллер представления, который вы хотите отобразить первым.

Затем вы отображаете этот кончик в вашем контроллере popover. В представлении загрузился, вы делаете что-то вроде этого:

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

Это добавит вид вашего контроллера навигации к вашему виду в кончике, что позволит его отображать.

...