2013-12-16 16 views
-3

我已经使用Apple的模板在Xcode 5中创建了一个基于页面的应用程序。我在哪里可以找到有用的信息让我了解以下代码?如何理解基于页面的应用程序模板中的RootViewController?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

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

    DataViewController *startingViewController = [self.modelController viewControllerAtIndex:0 storyboard:self.storyboard]; 
    NSArray *viewControllers = @[startingViewController]; 

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

    self.pageViewController.dataSource = self.modelController; 

    [self addChildViewController:self.pageViewController]; 
    [self.view addSubview:self.pageViewController.view]; 

    CGRect pageViewRect = self.view.bounds; 
    self.pageViewController.view.frame = pageViewRect; 

    [self.pageViewController didMoveToParentViewController:self]; 

    self.view.gestureRecognizers = self.pageViewController.gestureRecognizers; 
} 
+3

* ...但它会对我很有帮助!!! *也许,但它会更有助于你自己研究答案。 Apple提供了直接从Xcode访问的优秀文档。诸如您指向的属性分配和方法调用之类的东西很容易解读,只需选择相关项目并查看Xcode的快速帮助检查器即可开始。 – Caleb

回答

1
NSArray *viewControllers = @[startingViewController]; // <--what does it mean??? 

一切都是UIPageViewController文档中解释,尤其是here in the setViewControllers:direction:animated:completion: method请参阅解释每种可能情况的表格

特别是,UIPageViewController显示一个或两个视图控制器,具体取决于它们是单面还是双面。这就是为什么该属性是一个数组,因为它期望一个或两个ViewController的NSArray显示。


[编辑]当你编辑您的帖子对代码的大约每行添加问题,我们不能回答所有的问题在一个简单的苏答案。这里有太多的概念。

你可能会需要或者得到一本关于iOS的编程到解释这里所有的基本概念,或阅读苹果公司网站上的“视图控制器编程指南”的文件,和所有其他苹果文档的每个概念,像:

  • 什么是故事板(参见用户界面编程指南)
  • 什么是委托的,什么是概念的概念,一个数据源(见苹果的DevPedia设计Patters编程指南)
  • 子视图和浩w视图层次结构在Cocoa中工作(请参阅“视图编程指南”)以及视图坐标系的工作方式(如边界和框架,请参阅相同的文档)
  • View Controller容器如何工作(请参阅View Controller Programming指南)
  • 如何触摸检测和姿势的工作(见触摸和手势编程指南)

这的确是一个很多解释,在一个SO问题要问了,这也是很多有关的一些问题非常基础的CocoaTouch和iOS编程,更好地在专门的教程或书籍和编程指南中解释每个主题!

+0

但这是什么意思? '[self addChildViewController:self.pageViewController]; [self.view addSubview:self.pageViewController.view];' 我觉得PageViewController拥有一个childViewController的数组,为什么添加pageViewController到ChildViewController? – Strong

+0

查看我的编辑。在一个简单的SO回答中真的有太多需要解释的地方,你似乎很难理解CocoaTouch的许多基本概念,如故事板,视图边界,视图层次结构概念,视图控制器容器模式(请参阅此特定视图控制器编程指南一个),数据源和委托模式......每一行都有一个问题,即使是涉及到基础知识的问题,所以我的建议是获得一本关于iOS编程的好书,并且一次学习每个概念,但不能全部学习这些概念在一个简单的答案中,这太简单了。 – AliSoftware

+0

非常感谢。这是非常有帮助的! :) 再次感谢! – Strong

相关问题