没有任何接触的故事板过渡(即 IBOutlet)

Posted

技术标签:

【中文标题】没有任何接触的故事板过渡(即 IBOutlet)【英文标题】:Storyboard transition without any touch(i.e IBOutlet) 【发布时间】:2012-07-26 06:51:40 【问题描述】:

我正在使用情节提要,其中我有三个视图控制器。我想从第一个视图控制器进入第二个视图控制器,没有任何触摸(所以我使用了计时器。) 我在 timers 方法中添加了以下代码:

[self presentModalViewController:anyViewControllerRef 动画:YES]; 或者 [[self navigationController] pushViewController:anyViewControllerRef 动画:YES];

但是在计时器间隔后我两次都出现空白屏幕(即使我得到了完美的日志,这意味着我在第二个 ViewControllers 类中添加的日志但没有正确的视觉效果)

我应该在 timers 方法中添加什么来执行场景转换?(以便能够看到我在下一个 ViewController 上添加的任何内容)

【问题讨论】:

得到了解决方案。需要将标识符添加到下一个视图控制器和计时器方法中的以下代码:anyViewControllerRef = [self.storyboard instantiateViewControllerWithIdentifier:@"identifierName"]; //必须的行,否则你会黑屏 [[self navigationController] pushViewController:anyViewControllerRef animated:YES]; 【参考方案1】:

仅供您自己参考,这对您不起作用的原因是因为您正在“创建”您拥有的任何类型的视图控制器并显示这个“新创建的”控制器,当然这个没有任何视觉效果这是因为 interfacebuilder 控制器没有链接到这个。

您的解决方案意味着您不是创建 anyViewControllerRef 的实例,而是要求情节提要为您提供它所拥有的实例(带有您添加的视觉元素的实例)。

顺便说一句,几乎 90% 的时间你想在 ios 下为 iphone 呈现模态视图控制器,如果我没记错的话,push 仅用于 ipad 或 navigationviewcontroller。

【讨论】:

【参考方案2】:

需要在定时器方法中添加标识符到下一个视图控制器和以下代码:

anyViewControllerRef = [self.storyboard instantiateViewControllerWithIdentifier:@"identifierName"];

[[self navigationController] pushViewController:anyViewControllerRef 动画:YES]

【讨论】:

以上是关于没有任何接触的故事板过渡(即 IBOutlet)的主要内容,如果未能解决你的问题,请参考以下文章

没有故事板的过渡动画 segue swift

故事板没有堆叠?

故事板转场覆盖 iPhone 4 和 5 上的垂直过渡

@IBOutlet和@IBAction指的是错误的项目,如何摆脱那些引用?

2个故事板之间的过渡

故事板中封面垂直过渡的对面