容器视图控制器示例

Und*_*ion 94 objective-c uiviewcontroller ios ios5

有人能指出我创建自定义视图控制器作为容器视图控制器的任何好例子吗?我能找到的唯一文档是UIViewController类参考中的几个段落.我觉得我需要比这更多的信息,一个示例实现会很好.谷歌根本没有发现任何事情.

我对这个方法特别感兴趣:

transitionFromViewController:toViewController:duration:options:animations:completion:
Run Code Online (Sandbox Code Playgroud)

hyp*_*ypt 51

到目前为止,我发现的最好的事情是WWDC 2011 Session Video Session 102 - 实现UIViewController遏制.


Jos*_*phH 37

除了WWDC会话视频会话102 - 实现已经提到的超级加密的UIViewController Containment之外,关于"iOS上视图控制器的演变"的Apple WWDC 2012会话也涵盖了这个主题,示例代码是示例代码包的一部分:

https://developer.apple.com/devcenter/download.action?path=/wwdc_2012/wwdc_2012_sample_code/wwdc_2012_session_code.dmg

这里还有一个例子:https: //github.com/toolmanGitHub/stackedViewControllers

  • 再次+1,为什么Apple为什么不能将WWDC会话代码放在他们的成员页面上? (6认同)
  • +1提到在哪里获得该死的代码包.我一直在仔细研究它. (2认同)

小智 17

- (void)viewDidLoad{
    [super viewDidLoad];

    // I put self in a Navigation VC so we can use its right navigationbar 
    // item for triggering the transition
    self.navigationItem.rightBarButtonItem = 
     [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                                                    target:self 
                                                    action:@selector(button:)] 
                                                                  autorelease];

    // create test1 and test2 instance (subclass UIViewController and 
    // also need to define their own nibs)
    vc1 = [[test1 alloc]initWithNibName:@"test1" bundle:nil];
    vc2 = [[test2 alloc]initWithNibName:@"test2" bundle:nil];

    //add to the container vc which is self    
    [self addChildViewController:vc1];
    [self addChildViewController:vc2];

    //the entry view (will be removed from it superview later by the api)
    [self.view addSubview:vc1.view];
}
Run Code Online (Sandbox Code Playgroud)

这个IBAction触发了两个VC之间的过渡:

-(IBAction)button:(id)sender {
    [self transitionFromViewController:vc1 
                      toViewController:vc2 
                              duration:0.5    
                               options:UIViewAnimationOptionTransitionCurlDown 
                            animations:nil 
                            completion:nil];
}
Run Code Online (Sandbox Code Playgroud)


Rui*_*res 10

可以这样:

http://subjective-objective-c.blogspot.com/2011/08/writing-high-quality-view-controller.html

足够满足您的需求?

  • 实际上我已经发现了,但遗憾的是它是关于Ios4的,但是5已经发生了重大变化.Apple现在明确支持创建自定义视图控制器容器,尽管他们似乎不想帮助我们解决如何使用它们.谢谢. (4认同)
  • 别担心.我查看了他的容器类的代码,但没有一个使用以下任何方法:addChildViewController:,removeFromParentViewController,transitionFromViewController:toViewController:duration:options:animations:completion:,willMoveToParentViewController:和didMoveToParentViewController:更新中都提到了这些UIViewController的ios5文档. (4认同)

jav*_*log 8

不知道这是否是一个"好"的例子,但你可以从https://bitbucket.org/javieralonso/jaacordeonviewcontroller/overview获得一个免费的Container ViewController

这是一个完整的手风琴隐喻容器视图控制器