【问题标题】:Get the current view controller in ios获取ios中的当前视图控制器
【发布时间】:2014-03-17 11:55:11
【问题描述】:

在我的 iPod 设备中,我连接了一个外部设备用于扫描。外部设备有一个扫描按钮。扫描仪的委托方法位于视图控制器“ScannerViewController”中。现在我在另一个名为“NotificationViewController”的视图控制器中,然后单击外部设备中的按钮。当我单击按钮并完成扫描时,它会触发 ScannerViewController 中的一个方法。在该方法中,我需要获取可见的当前视图控制器的名称。也就是在这种情况下,我需要将视图控制器的名称设为 NotificationViewController。

【问题讨论】:

  • 这可能会有所帮助 [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
  • 您不能将活动的NotificationViewController 作为委托的属性传回吗?有点像发送IBAction?
  • 你用的是什么容器?如果您在 UINavigationController 中进行设置,或者呈现模态视图控制器,则可能会更轻松

标签: ios


【解决方案1】:

你试过了吗?

NSLog(@"Current View Class: %@", NSStringFromClass(self.class));

【讨论】:

    【解决方案2】:

    如果您使用的是导航控制器,您可以尝试以下操作:

    [self.navigationController topViewController];
    

    获取当前可见的视图。

    【讨论】:

      【解决方案3】:

      看看这个

      + (UIViewController*) getTopController
      {
          UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;
      
          while (topController.presentedViewController) {
              topController = topController.presentedViewController;
          }
      
          return topController;
      }
      

      http://www.iosrocketsurgery.com/2013/07/get-current-viewcontroller-in-ios.html

      【讨论】:

        【解决方案4】:

        我们试试这个方法

        NSLog(@"Class name :%@", NSStringFromClass([self.presentedViewController class]);)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-21
          • 2014-12-24
          • 2012-12-02
          • 1970-01-01
          • 2014-03-18
          • 1970-01-01
          • 2014-04-06
          • 2014-09-09
          相关资源
          最近更新 更多