iphone - 如何确定 ViewController 是否是顶级的?

标签 iphone objective-c ios

我有一个标签栏驱动的应用程序。

该应用程序有一些 View Controller ,它们以通常的方式相互堆叠。 其中一些 View Controller 可能是顶级的——意味着直接从选项卡栏 Controller 实例化。它们的导航栏中没有“后退”按钮。

其中一些可以在调用堆栈中的许多点调用。这意味着它们可以从其他 View Controller 调用,而不是直接从选项卡栏调用。

我正在寻找一种聪明的方法来以编程方式确定当前 View Controller 当前在其导航栏中是否有“后退”按钮。 (如果没有,那么我想在那个地方显示一些其他的栏目。)

感谢任何提示。 :)

最佳答案

嗯...根据你的描述,我可以理解你有一个 UITabBarController,每个选项卡中都有一个 View Controller 列表,每个 View Controller 都是一个导航 Controller ,这进一步导致到新的观点。您有兴趣了解某个特定 View 是第一个 View 还是第二个 View ,等等。

有趣的是,有一种方法可以做到这一点。导航 Controller 基本上是一个 viewController 数组, View 添加到 navigationController 的索引中。第一个 View 将在索引 0 中。如果您执行 pushViewController,则 newViewController 将放置在索引 1 中。

只需检查该特定 View 的 self.navigationController 的索引计数。如果大于1,则可以确定不是初始 View 。

您还可以检查 backBarButtonItem 属性,但话又说回来,它可能并不需要。 viewControllers 数组计数应该可以。

关于iphone - 如何确定 ViewController 是否是顶级的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8235261/

相关文章:

objective-c - 无法使用 GNUstep 在 Objective-C 上构建程序

iphone - 在 Objective-C 中创建 View 委托(delegate)的语法

ios - 如何使用滚动动画关注 UITableview 中的最后一个单元格?

ios - 将 Facebook 的 Account Kit 与 Parse 集成

ios - 如何获取 iOS 用于显示 UITableView 标题标题的默认字体详细信息?

iphone - Facebook:无法将图片发布到 Feed

ios - 向下/向上滚动时淡出/显示 UIButton

iphone - 如何在 iPhone iOS 4 中设置 UITableViewCell 样式副标题文本对齐方式居中?

iphone - 如何更改 UINavigationController 上的后退按钮

objective-c - 无法将自定义 View 从 nib 加载到另一个以编程方式制作的 View 中?