2

在我的应用程序中,我使用UINavigationController在许多不同的UIViewControllers之间切换。唯一的问题是,在我的一个观点中,在加载时,我必须做大量的定制(数据访问和图形,这两者都必须在代码中完成)。当按下视图控制器时,动画非常不连贯,因为手机被迫同时为过渡设置动画并设置视图。在推送/呈现之前设置UIViewController

它被加载之后设置的视图不是一个选项,所以是有可能将其设置(存在具有所有的在其上的必要的代码的方法调用setupViewDidLoad)分配期间之前它被推/呈现?

编辑:

让我稍微修改我的问题。我发现,如果我使用[self presentModalViewController:animated:]来呈现视图控制器,而不是使用导航控制器来推送视图控制器,那么就没有混乱。这是什么原因?

回答

1

最好的办法就是做到这一点。在您的视图.m文件中,在viewWillAppear中设置您需要的任何代码。如果您必须远程访问数据,您可能需要考虑创建一个自己的数据存储类来处理和存储数据,以便在每次 - 即使视图未加载或尚未加载时都可以执行此操作。

+0

你知道,我真的没有回应你的编辑诚实。真奇怪。导航控制器将呈现一个新的视图,以导航控制器控制的视图堆叠。模态视图只是简单地展示了当前所有内容的顶层视图 - 也许因为它不能在堆栈中进行控制,它可以稍微加载一些内容?在这一点上只是一个受过教育的猜测。 – Brayden

+0

是的;这似乎是一个奇怪的问题,因为当我从模态显示所有视图(从未注意到任何动画滞后)切换到使用导航控制器时,我对UINavigationController的震荡程度感到惊讶。这是一个有趣的问题;现在我只是以模态方式呈现该视图控制器,而不是使用导航控制器,因为它无论如何都将是最高级的。 –

相关问题