手动切换viewControllers

时间:2014-02-11 14:31:42

标签: objective-c

我在viewcontroller1我希望转到viewcontroller2,在1我这样做:

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

signUpView是新的viewController classview controller的子类) 没有任何事情发生。

我试过了:[self.view removeFromSuperview]; 这确实奏效并取消了我的观点。

  1. 我如何过渡到2
  2. 我如何添加2对1而不是回到1?
  3. 谢谢。

3 个答案:

答案 0 :(得分:1)

用以下代码替换您的代码:

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

我没有发表评论,因为这段代码是自我解释的。 这应该有所帮助。

答案 1 :(得分: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文章。

答案 2 :(得分:0)

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

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

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