我现在有点进退两难。我有一个将 UINavigationViewController 作为 rootViewController 的应用程序。据我所知, UINavigationViewController 在实例化时需要 rootViewController 。问题是,我有几个 UIViewController 可供选择,并且选择取决于从 Web 服务返回的数据。
这是否意味着我应该在 AppDelegate 中调用 Web 服务,并且只有在获取数据后才实例化 UINavigationViewController?
我还考虑过创建一个包装 UIViewController,其中包含 UINavigationViewController 及其作为 subview 的 View 。但看起来嵌套 View Controller 有一些缺点,主要是在生命周期和旋转方面。
有更好的方法吗?谢谢!
更新:我的同事推荐了另一种可能是最干净的解决方案。在这里,AppDelegate 加载一个“ Bootstrap ”ViewController,其主要目的是从 Web 服务中提取数据,并可能显示加载指示器。一旦获得数据,它将删除自身并添加具有适当根的导航 Controller 。
最佳答案
也许会推送一个带有“等待数据...” View 的 View Controller ,然后当网络响应到达时弹出它并推送适当的 View Controller ?
关于iphone - 可以在 App Delegate 中调用 Web 服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435947/