我在Storyboard中有这些ViewController:
没有一个连接到自定义类,所有都是从Storyboard直接添加的。
还有人遇到过这个问题吗?
我在Storyboard中有这些ViewController:
没有一个连接到自定义类,所有都是从Storyboard直接添加的。
还有人遇到过这个问题吗?
我认为这个问题是在视图自动布局并将其大小设置为主屏幕大小时发生的。在iOS 7中,导航推送动画在视图大小设置之前进行,因此我们可以看到动画效果。不用担心,在iOS 8.0及更高版本中,它能正常工作。对于iOS 7.0,您可以在viewDidLoad中提供视图大小,以便在出现之前调整大小。
编辑2:
正如评论中提到的那样,我无法重现您的示例项目中的问题。但我注意到,您的项目配置了一个部署目标iOS 8.3。以下是解决方法的步骤:
步骤1:在Xcode的项目导航器中选择您的项目。 步骤2:确保您在项目编辑器的左列中选择了您的项目而不是目标。 步骤3:选择“Build Settings”选项卡。 步骤4:将iOS Deployment Target修改为iOS 7.1或iOS 7.0,具体取决于您要测试的操作系统版本。 步骤5:构建并运行。
希望这可以帮助您。
编辑:
步骤1:选择带有标签14的UIViewController
,在Xcode右侧窗格的第三个选项卡中输入Storyboard ID,例如vc14。
步骤2:选择带有标签12的UIViewController
,在相同的选项卡中输入自定义类,例如ViewController
。
步骤3:从按钮中删除触发的segue动作,并用ViewController
中的@IBAction
替换它。
步骤4:将以下代码添加到ViewController
中的@IBAction
:
@IBAction func push(sender: AnyObject) {
var vc14 = self.storyboard?.instantiateViewControllerWithIdentifier("vc14") as! UIViewController
vc14.view.layoutIfNeeded()
self.navigationController?.pushViewController(vc14, animated: true)
}
解释:
奇怪的动画出现是因为在切换UIViewController
到UINavigationController
之前没有进行布局。iOS 7没有适当地防护这种情况,即在进入动画块之前手动调用layoutIfNeeded
,并且当布局最终发生时,它会触发隐式动画。 在我给您提供的代码示例中,我会在将ViewController
推入堆栈之前手动触发布局,以避免此问题。
我想你按了⌘T键,所以慢动画开始了。检查你使用的所有模拟器。
调试->慢动画
我附上了图片,请查看。