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

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 は呼び出されません)。修理?

解決策: 解決策を見つけました: popOver テーブル ビュー

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 に答える