回答
只需创建一个容器uiviewcontroller
,将有例如一个静态按钮和一个空的uiview
。创建它们作为iboutlets和通常属性UIPageViewController
称为pvc。然后你可以在代码中创建一个pvc,并通过addSubview:
将它添加到uiview插座。
这是从我上个周末做的一个项目复制的一些代码。在UIPageViewController
中有Skidata,并将一个雪花的UIImage
作为覆盖。我只复制了代码的相关部分。希望这将帮助你:
SkiViewController.m
@interface SkiViewController() <UIPageViewControllerDataSource>
@property (strong, nonatomic) UIPageViewController *pageController;
@property (strong, nonatomic) SkiDataArray* skiDataArray;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIView *pageDataView;
@end
@implementation SkiViewController
- (SkiSubViewController *)viewControllerAtIndex:(NSUInteger)index
{
SkiSubViewController *childViewController = [[SkiSubViewController alloc] initWithNibName:@"SkiSubViewController" bundle:nil];
childViewController.indexNumber = index;
if(self.skiDataArray)
{
childViewController.skiData = self.skiDataArray[index];
}
return childViewController;
}
#pragma mark - lify cycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageController.dataSource = self;
[self addPageControllerViewControllers];
[self addPageControllerView];
[self addChildViewController:self.pageController];
[self.pageController didMoveToParentViewController:self];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self updateData]; // download ski data and stuff
}
- (void)addPageControllerViewControllers
{
SkiSubViewController *viewController = [self viewControllerAtIndex:0];
if(self.skiDataArray)
{
viewController.skiData = self.skiDataArray[0];
}
[self.pageController setViewControllers:@[viewController] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
}
- (void)addPageControllerView
{
self.pageController.view.translatesAutoresizingMaskIntoConstraints = NO; // avoids conflicts with auto generated constraints
[self.pageDataView addSubview:self.pageController.view];
NSDictionary *views = @{ @"subview": self.pageController.view };
[self.pageDataView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[subview]|" options:0 metrics: 0 views:views]];
[self.pageDataView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[subview]|" options:0 metrics: 0 views:views]];
[self.pageDataView updateConstraintsIfNeeded];
}
#pragma mark - uipageviewcontroller data source
- (UIViewController*)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
NSUInteger index = [(SkiSubViewController *)viewController indexNumber];
if (index == 0)
{
return nil;
}
else
{
index--;
return [self viewControllerAtIndex:index];
}
}
- (UIViewController*)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
NSUInteger index = ((SkiSubViewController *)viewController).indexNumber;
index++;
if (index == self.skiDataArray.count)
{
return nil;
}
else
{
return [self viewControllerAtIndex:index];
}
}
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
{
return self.skiDataArray.count;
}
- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
return 0;
}
@end
SkiSubViewController.h
@interface SkiSubViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (assign, nonatomic) NSInteger indexNumber;
@property (strong, nonatomic) SkiData* skiData;
@end
SkiSubViewController.m
@interface SkiSubViewController()
@property (weak, nonatomic) IBOutlet UILabel *label;
@end
@implementation SkiSubViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.label.text = [NSString stringWithFormat:@"Number %li", (long)self.indexNumber];
}
@end
请证明代码是否可能以及何时可能。我试图把'UIPageViewController().view'作为子视图放在'uiviewcontroller'容器中,但它对我不起作用。谢谢 – Arsen
好吧,我已经添加了一些代码 – donmarkusi
你能否提供一个快速的例子。我无法在任何地方找到一个。 – Xitcod13
- 1. xamarin/mvvmcross带有静态内容的UITableView
- 2. 带有混合静态/动态内容的UITableViewController中的NSRangeException
- 3. 静态内容
- 4. 静态内容
- 5. 带有静态宽度容器的Flex
- 6. 带有UIPageViewController的UIPopoverController不显示任何内容
- 7. 带有动态内容的jquery模态
- 8. 带有静态宽度的内联div
- 9. Html.dropdownlist静态内容
- 10. 带动态内容的Java静态窗口
- 11. 静态内容的RouteHandler
- 12. 带有动态内容的android布局?
- 13. 带有动态内容的Android ViewPager
- 14. 带有框架的UIPageViewController
- 15. 带有静态行的CursorLoader
- 16. appharbor没有部署静态内容
- 17. 春天没有加载静态内容
- 18. 带动态内容的JQuery
- 19. 带动态内容的RowExpander
- 20. 静态内容在Django
- 21. 服务静态内容
- 22. Jetty.xml访问静态内容
- 23. 快速gzip静态内容
- 24. nginx重写静态内容
- 25. ASP.NET MVC:静态内容
- 26. 处理静态内容(CSS)
- 27. i18n静态HTML内容
- 28. 过滤静态内容Jersey
- 29. Liferay - 发送静态内容
- 30. Spring:DispatcherServlet和静态内容
你可以添加一个图像或场景来阐明你的想法吗? – donmarkusi
@donmarkusi请检查出 – Arsen