语境
我的应用在 Xcode 5.0 的 iOS 7 模拟器中的外观
我在 Xcode 5.0 中预览了一个为 iOS 5.1 构建的应用程序,并在 iOS 7 模拟器中运行它。一堆东西已经改变/“看起来很奇怪”。
例子:
- 我正在使用 a
UINavigationController
并navigationBar
使用: 将其颜色设置为黑色self.navigationController.navigationBar.tintColor = [UIColor blackColor]
,但是当我在模拟器中运行它时,导航栏现在是半透明的灰色 - 我在主屏幕上有许多按钮,在 iOS 6 中,这些按钮被导航栏按下,而在 iOS 7 中则不是这样,它们在屏幕上向上移动并位于导航栏后面。
这份名单可以继续使用。我意识到这是因为 iOS 7 更新了“核心”框架库,例如UINavigationController
.
我的应用在运行 iOS 7 测试版的 iPod touch(第 5 代)上运行时的外观
当我在我的 iPod touch 上运行相同的应用程序时(但是在这种情况下,该应用程序是从应用商店下载的,已针对 iOS 5 发布),它看起来与在 iOS 6 中几乎相同,导航栏是黑色的,按钮位于主屏幕上的“正确位置”等。
问题
我假设当应用程序使用导航对象时,例如UINavigationController
它希望在设备上找到该库,而不是将该库打包在应用程序中?我想情况并非如此。有人可以向我解释一下设备上访问了哪些库以及应用程序预先打包了什么,并更深入地解释了上述机制。
我的理解是,在 Xcode 中预览应用程序时,Xcode 将 iOS 7 库与我的应用程序捆绑在一起,因此发生了相当大的变化。当我在 iPod touch 上预览应用程序时,因为我使用的是应用程序的公共版本,它与 iOS 5/6 库捆绑在一起,它看起来是一样的。