0

親View Controller内、つまり親View Controllerの3/4部分のみに子View Controllerを表示するアプリを作成しています。次のコードを実装しましたが、子ビュー コントローラーが親ビュー コントローラー全体を埋め尽くしています。

私のコードは次のとおりです。

- (CardsChildViewController *)viewControllerAtIndex:(NSUInteger)index {

    CardsChildViewController *childViewController = [[CardsChildViewController alloc]     initWithNibName:@"CardsChildViewController" bundle:nil];
childViewController.index = index;



    return childViewController;

}

そしてviewDidLoad関数で私は書いています:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    self.pageController = [[UIPageViewController alloc]         initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll     navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];

    self.pageController.dataSource = self;
    [[self.pageController view] setFrame:[[self view] bounds]];

    CardsChildViewController *initialViewController = [self viewControllerAtIndex:0];


    NSArray *viewControllers = [NSArray arrayWithObject:initialViewController];

    [self.pageController setViewControllers:viewControllers     direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

    [self addChildViewController:self.pageController];
    [[self view] addSubview:[self.pageController view]];
    [self.pageController didMoveToParentViewController:self];

}

http://www.appcoda.com/uipageviewcontroller-tutorial-intro/の助けを借りてこれを作成しました。

4

2 に答える 2

0

pageController のフレームを次のように変更してみてください。

CGRect frame = self.view.frame;

CGRect insetFrame = CGRectInset(frame, frame.size.width * 1/8, frame.size.height * 1/8);
于 2014-10-26T13:00:55.800 に答える
0

あなたのページ ビュー コントローラーは子であり、viewControllerAtIndex メソッドで作成したビュー コントローラーではありません。

子ビュー コントローラーをセットアップする最も簡単な方法は、コンテナー ビューをストーリーボードに配置し、子ビュー コントローラーを別のシーンにして、埋め込みセグエをコンテナー ビューから目的のビュー コントローラーにコントロール アンド ドラッグすることです。子。

これを行うと、コンパイラはすべての作業を行って、子を正しく管理するための接続を設定します。ビューが最初に読み込まれ、子がインストールされると、親ビュー コントローラーの prepareForSegue メソッドが起動します。その時点で、アウトレット、デリゲート接続、またはその他の必要なものを接続できます。

それができない場合は、@ErAdhish が示唆するように、サブビューとして追加する前に、ページ ビュー コントローラーのビューのフレームを調整できます。ただし、ハウスキーピング メッセージを親から子に転送するためには、多くの設定を行う必要があります。

于 2014-10-26T13:45:59.363 に答える