Segue 传递数据但不为 ViewController 演示设置动画

Posted

技术标签:

【中文标题】Segue 传递数据但不为 ViewController 演示设置动画【英文标题】:Segue passing data but not animating the ViewController presentation 【发布时间】:2014-04-01 22:50:40 【问题描述】:

我有这个问题: 我有两个 ViewController。 我正在使用 Segue 过渡到第二个视图。 用户在第一个视图控制器上输入他的名字并点击一个按钮。如果文本为零,则不应显示第二个视图控制器。如果文本字段上有一些文本 - 它必须显示下一个视图控制器。

我正在检查下面的文本长度。因为我只有一个转场......我没有检查转场标识符。

而且,在 Storyboard 上,我提供了模态转换 CoverVertical。动画不工作。视图刚刚出现。 UIModalTransitionStyle 我也试过了。仍然无法正常工作(在设备和模拟器上)

-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender

    if(playerNameTextField.text.length == 0)
    
        UIColor *tempColor=UIColorFromRGB(0xFF4981);
        [self colorizeTextViewForAWhile:playerNameTextField withUIColor:tempColor animated:YES];
        return NO;
        
    return YES;


-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    if([segue.identifier isEqualToString:@"segueMoveToHome"])
    
        ViewController *vc = (ViewController *)segue.destinationViewController;
        vc.playerName=playerNameTextField.text;
    

【问题讨论】:

您是否在shouldPerformSegueWithIdentifier: 中设置了断点并单步执行?检查playerNameTextField 是否不为零 - 如果是,您可能忘记在 IB 中绑定 IBOutlet 是的。是的。我放了断点。除了过渡动画,一切都很完美。和我给了 YES 的过渡标志。 好的。也许你可以澄清你的问题。您的标题暗示第二个视图没有显示,但问题似乎是过渡没有动画? 在情节提要中,您是否检查了 animates 复选框已选中?我说的是segue 我已删除标识符文本并继续。因为这是唯一的转场或任何其他原因......它正在工作。如果我把segue ......它不起作用。 :|没有把握。但我现在可以运行我的应用了。 【参考方案1】:

您的代码运行良好。我刚刚复制并使用 CoverVertical 进行了过渡。

在 Interface Builder 中,选择 Storyboard Segue 并确保您拥有:

我是 linking 你是一个迷你演示,你的代码可以工作。

【讨论】:

谢谢加布。我已删除标识符文本并继续。因为这是唯一的转场或任何其他原因......它正在工作。如果我把segue ......它不起作用。 :|没有把握。但我现在可以运行我的应用了。【参考方案2】:

我已删除标识符文本并继续。因为这是唯一的转场或任何其他原因......它正在工作。如果我把segue...它不起作用。 :|没有把握。但我现在可以运行我的应用了。

【讨论】:

以上是关于Segue 传递数据但不为 ViewController 演示设置动画的主要内容,如果未能解决你的问题,请参考以下文章

使用 IBAction 将数据传递到另一个视图控制器而无需 segue swift

按下时 Segue 不会显示 ViewController

XCODE:2 个视图控制器连接一个 segue 和 2 个 Uilabels 数据

为啥 TabBar 在 segue 之后隐藏?

准备 segue 传递数据 nil

Segue 不会传递数据