获取ViewController的名称

Dif*_*ffy 1 iphone objective-c uitabbarcontroller uigesturerecognizer ios

我有一个带有4个标签的TabBarControllers应用程序.现在,在didFinishLaunchingWithOptions中我做了这个:

    UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
    lpgr.minimumPressDuration = 5.0;
    lpgr.delegate = self;
    [self.window addGestureRecognizer:lpgr];
    [lpgr release];
Run Code Online (Sandbox Code Playgroud)

此部分正常工作,所有四个选项卡中都识别出长按手势.现在,我想传递用户当前正在按下的当前ViewController的名称,以便我可以在处理长按事件的函数中传递它.

Kju*_*uly 9

你可以试试:

NSStringFromClass([YourViewController class]);
Run Code Online (Sandbox Code Playgroud)

对于当前视图控制器,使用:

NSStringFromClass([self class]);
Run Code Online (Sandbox Code Playgroud)


Kam*_*had 5

试试下面一个(更新)

正如您所说,您已在 TabBar 控制器上添加了四个 ViewController。

从 TabBarController 获取 ViewController 为:

UIViewController *current = tabBarController.selectedViewController;

NSArray *controllerNameArray = [current childViewControllers]; 
Run Code Online (Sandbox Code Playgroud)

NSLog(@"className %@",[controllerNameArray objectAtIndex:0]);

 

我希望它真的对你有帮助......!!!