【发布时间】:2012-08-27 08:16:06
【问题描述】:
我试图弄清楚 iPhone 版 Twitter 中的导航样式是如何实现的。
当您在时间线中点击推文时,(自定义)标签栏会在从时间线到详细视图的过渡期间保持原位。这表明选项卡栏是“主”UIViewController 的子视图,其中包含一个包含 4 个UINavigationControllers 的数组,每个选项卡一个。当一个选项卡被按下时,主UIViewController 从它的视图中删除当前可见的UINavigationController 并将新的UINavigationController 添加为子视图。在这种方法中,标签栏不是任何导航堆栈的一部分,因此它在每次转换期间都保持在原位。
但是,当您在详细视图中点击 URL 时,标签栏会移出屏幕并出现一个新的工具栏。这与上述理论相矛盾。
Tweetbot 使用与官方 Twitter 应用完全相反的导航风格。如果您在 Tweetbot 的时间轴中点击一条推文,标签栏会移出屏幕。标签栏在过渡期间永远不会停留在原位。他们可能使用一个UINavigationController,主UIViewController + 选项卡栏作为rootviewcontroller。我假设当用户点击推文时,时间线会通过委托或类似的方式在主 UIViewController 上调用 [self.navigationController pushViewController:]。
事实上,iPhone 版 Twitter 将第一个理论与 Tweetbot 导航风格背后的理论混合在一起。如何实现官方 Twitter 应用的功能?
【问题讨论】:
标签: iphone objective-c ios cocoa-touch