获取ViewController的名称

时间:2012-03-02 04:03:40

标签: iphone objective-c ios uitabbarcontroller uigesturerecognizer

我有一个带有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的名称,以便我可以在处理长按事件的函数中传递它。

3 个答案:

答案 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),并有一个方法可以从索引返回控制器(或将控制器放入一个公共数组)。