Xcode 4 UIButton segue推送至表视图控制器[英] Xcode 4 UIButton segue push to Table View Controller

本文是小编为大家收集整理的关于Xcode 4 UIButton segue推送至表视图控制器的处理方法,想解了Xcode 4 UIButton segue推送至表视图控制器的问题怎么解决?Xcode 4 UIButton segue推送至表视图控制器问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

现在我的情节提要中有一个 UIButton 设置,可以推送到表视图控制器.这按预期工作.我想要做的是让 UIButton 在按下时加载一个 xml 文件并仍然移动到 Table View Controller 上.

我该怎么做?我已经有了 XML 片段的代码,这是一个问题,即代码的去向以及如何为新的 ViewController 子类 UIViewController 添加 .h 和 .m 文件.如何将这些文件链接到我在情节提要中创建的 UIButton?

推荐答案

将按钮连接拖到新视图并选择自定义 Segue 而不是 Push 或 Modal.

在此处输入图片描述

将新的自定义 Segue 的类更改为"mySegueClass1"或您想要的任何名称.

在此处输入图片描述

创建一个新的 Objective-C 类,其名称与您刚刚分配给自定义 segue 的名称相同.

在此处输入图片描述然后在您的 mySegueClass1.m 文件中添加以下代码,并将您想要的任何其他操作添加到 -(void)perform

-(void)perform{
    UIViewController *dst = [self destinationViewController];
    UIViewController *src = [self sourceViewController];
    [dst viewWillAppear:NO];
    [dst viewDidAppear:NO];


    [src.view addSubview:dst.view];

    CGRect original = dst.view.frame;

    dst.view.frame = CGRectMake(dst.view.frame.origin.x, 0-dst.view.frame.size.height, dst.view.frame.size.width, dst.view.frame.size.height);

    [UIView beginAnimations:nil context:nil];
    dst.view.frame = CGRectMake(original.origin.x, original.origin.y, original.size.height, original.size.width);
    [UIView commitAnimations];

    [self performSelector:@selector(animationDone:) withObject:dst afterDelay:0.2f];
}
- (void)animationDone:(id)vc{
    UIViewController *dst = (UIViewController*)vc;
    UINavigationController *nav = [[self sourceViewController] navigationController];
    [nav popViewControllerAnimated:NO];
    [nav pushViewController:dst animated:NO];
}

本文地址:https://www.itbaoku.cn/post/924500.html