首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用动画将一个ChildViewController推送到另一个ChildViewController

如何使用动画将一个ChildViewController推送到另一个ChildViewController
EN

Stack Overflow用户
提问于 2015-11-25 21:43:34
回答 1查看 152关注 0票数 0

我是iOS的初学者。在我的ParentViewController中,我添加了一个ChildViewController。在该控制器中,我添加了一个Next按钮。当我点击那个按钮时,我正在将First ChildViewController推向Second ChildViewController。这很好。

但在这里我在第二个ChildViewController中添加了另一个按钮。当我点击那个按钮时,我想从Second ChildViewController返回到First ChildViewController。但我的代码不能正常工作。请帮帮我

我的代码:

ParentViewController:

代码语言:javascript
复制
#import "ParentViewController.h"

@interface ParentViewController ()

@end

@implementation ParentViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor whiteColor];

    ChildViewController1 *ViewController1 = [self.storyboard instantiateViewControllerWithIdentifier:@"ChildViewController1"];

    ViewController1.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
    ViewController1.view.backgroundColor = [UIColor cyanColor];
    [ViewController1 willMoveToParentViewController:self];
    [self.view ViewController1.view];
    [self ViewController1];
}
@end

ChildViewController1:

代码语言:javascript
复制
#import "ChildViewController1.h"

@interface ChildViewController1 ()
{

}

@end

@implementation ChildViewController1

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (IBAction)next:(id)sender{

    ChildViewController2 *middleVC =[self.storyboard instantiateViewControllerWithIdentifier:@"ChildViewController2"];

    middleVC.view.hidden=FALSE;
    [middleVC.view setFrame:CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)];

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

    [UIView animateWithDuration:0.5 animations:^{
        [middleVC.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    }];
}

ChildViewController2:

代码语言:javascript
复制
#import "ChildViewController2.h"

@interface ChildViewController2 ()
{

}

@end

@implementation ChildViewController2

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (IBAction)back:(id)sender {

    ChildViewController2 *middleVC =[self.storyboard instantiateViewControllerWithIdentifier:@"ChildViewController2"];

    middleVC.view.hidden=FALSE;

    [middleVC.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

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

    [UIView animateWithDuration:0.5 animations:^{
        [middleVC.view setFrame:CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)];
    }];
}

在这里,当我点击后退按钮时,它不会向后推。

EN

回答 1

Stack Overflow用户

发布于 2015-11-25 21:55:06

在ChildViewController2后退按钮操作中,您拥有:

代码语言:javascript
复制
 ChildViewController2 *middleVC =[self.storyboard instantiateViewControllerWithIdentifier:@"ChildViewController2"];

你的意思不是:

代码语言:javascript
复制
ChildViewController1 *middleVC =[self.storyboard instantiateViewControllerWithIdentifier:@"ChildViewController1"];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33918061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档