如果我在UINavigationController上按下视图控制器和/或显示模态视图控制器,我如何找出最上面的UIViewController个?或者在我的例子中,我想知道某个UITableViewController是不是最高的.

我试着使用:

self.navigationController.topViewController == self

... 但这不管用.我猜它失败了,因为我在它上面展示了模态视图控制器,而topViewController只记录了UINavigationController上推送的视图(而不是那些模态视图).

推荐答案

你想要visibleViewController:

当前可见的视图可以属于导航堆栈顶部的视图控制器,也可以属于以模式显示的视图控制器.

Objective-c相关问答推荐

如何以编程方式获取iphone的IP地址

将 NSNumber 转换为 NSDecimalNumber

UIRefreshControl iOS 6 xcode

NSLocalizedString 格式

使用 UIScrollView 用两根手指滚动

带有 IB_DESIGNABLE 的 UIButton 会引发运行时属性警告,并且不会在 Interface Builder 中呈现

如何连续关闭 2 个模态视图控制器?

烦人的[Environment: Sandbox]提示

在 macOS 10.9+ 上删除 plist 文件不会重置应用程序

Objective-C 属性的默认属性是什么?

如何在 iOS 上将图像旋转 90 度?

如何在嵌入 UIViewController 的 UITableView 中直观地创建和使用静态单元格

iOS 11 large-title导航栏不折叠

Objective C 中的对象分配和初始化

协议和代表之间的区别?

如何从 UIColor 对象中获取红绿蓝 (RGB) 和 alpha?

Block 隐式保留'self';明确提及touch以表明这是预期行为

如何根据按钮按下重新加载/刷新 UIPickerView(带有新数据数组)?

UITableViewCell 选中行的文字 colored颜色 变化

公开只读但具有私有设置器的 Objective-C 属性