我有一个带有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];
此部分正常工作,所有四个标签中均可识别长按手势。现在,我想传递用户当前正在按下的当前ViewController的名称,以便我可以在处理长按事件的函数中传递它。
答案 0 :(得分:9)
您可以尝试:
NSStringFromClass([YourViewController class]);
并且对于当前视图控制器,请使用:
NSStringFromClass([self class]);
答案 1 :(得分:4)
尝试下面一个(更新)
如你所知,你已经在TabBar控制器上添加了四个ViewController。
从TabBarController获取ViewController为:
UIViewController *current = tabBarController.selectedViewController;
NSArray *controllerNameArray = [current childViewControllers];
NSLog(@“className%@”,[controllerNameArray objectAtIndex:0]);
我希望它真的对你有帮助...... !!!
答案 2 :(得分:1)
你应该传递一个索引(0-3),并有一个方法可以从索引返回控制器(或将控制器放入一个公共数组)。