我正在创建一个应用程序,我只想在父视图控制器中显示子视图控制器,即仅在父视图控制器的3/4部分。我已经实现了以下代码,但子视图控制器正在填满整个父视图控制器。
我的代码是:
- (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/
答案 0 :(得分:0)
尝试将pageController的框架更改为以下内容。
CGRect frame = self.view.frame;
CGRect insetFrame = CGRectInset(frame, frame.size.width * 1/8, frame.size.height * 1/8);
答案 1 :(得分:0)
您的页面视图控制器是子视图,而不是您使用viewControllerAtIndex方法创建的视图控制器。
设置子视图控制器的最简单方法是在故事板中放置容器视图,使子视图控制器成为一个单独的场景,然后控制 - 将嵌入segue从容器视图拖动到所需的视图控制器做个孩子。
当您这样做时,编译器会完成所有工作以设置连接以正确管理子项。首次加载视图并安装子视图时,将触发父视图控制器的prepareForSegue方法。此时,您可以连接任何网点,委托连接或其他任何您可能需要的东西。
如果失败,您可以在将其作为子视图添加之前调整页面视图控制器视图的框架,如@ErAdhish所示。但是你需要做一些设置才能将家政信息从父母转发给孩子。