2014-02-11 68 views
0

我在viewcontroller1,我想去viewcontroller2,在1我做的:viewControllers之间切换手动

UIViewController *sv=[[signUpView alloc]init]; 
[self addChildViewController:sv]; 

哪里signUpView是新的viewController class(的view controller子类) 没有什么反应。

我试过:[self.view removeFromSuperview]; 哪些工作,并删除我的看法。

  1. 我该怎么做过渡到2
  2. 如何在1加2比回到1?

谢谢。

+0

为什么你不使用pushviewcontroller或presentviewcontroller。为了返回到V1,你会得到一个后退按钮(pushviewcontroller)。或使用presentviewcontroller解除视图控制器。 – Pawan

回答

0

的一般方法是:

[ParentViewController.view addSubview: ChildViewController.view]; 
    [ParentViewController addChildViewController: ChildViewController]; 
    [ChildViewController didMoveToParentViewController: ParentViewController]; 

在你的情况,这将是:

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

也可参阅Apple.com的View Controller Containment文章。

1

替换为您的代码:

UIViewController *sv=[[signUpView alloc]init]; 
[self addChildViewController:sv]; 
[self.view addSubview:sv.view]; 
[sv didMoveToParentViewController:self]; 

我不把任何评论,因为这个代码是自我解释。 这应该有所帮助。

0

另一种选择是使用segues在您的Storyboard中设置您的UIViewController交互,然后以编程方式调用segue。如果你不确定如何设置一个segue,那么看看Ray Wenderlich的this tutorial或搜索一个;那里有很多,我写的东西会比较苍白。

由于所有内容都是在故事板中配置的,所以代码很简单。这是我的viewController1拨打电话切换到viewController2的示例。

[self performSegueWithIdentifier: @"DoNumber2" sender:self];