获取控制器的名称

时间:2009-12-29 10:27:04

标签: iphone uiviewcontroller uitabbarcontroller

我有一个带TabBarController的iPhone应用程序。我可以使用

访问当前的ViewController
[appDelegate.myTabBarController selectedViewController]

但是如何获得该控制器的名称?

例如,所选ViewController的名称是“TestViewController”。我怎样才能得到这个字符串/名字? 我想检查当前的ViewController是否是“TestViewController”。

提前多多感谢&最诚挚的问候。

3 个答案:

答案 0 :(得分:2)

您可以这样做:

if([[appDelegate.myTabBarController selectedViewController] isKindOfClass:[TestViewController class]])
{
NSLog(@"Yes I am the controller you want.");
}

希望这有帮助。

答案 1 :(得分:1)

 if ([NSStringFromClass([[appDelegate.myTabBarController selectedViewController] class]) isEqualToString:@"TestViewController"])
{
    //do your stuff here
}

答案 2 :(得分:0)

你可以创建UIViewController类的子类并添加属性,例如

@property(nonatomic, retain) NSString* name;

然后使用name属性创建类的所有viewControllers子类。然后只需在-(id)init-(void)viewDidLoad方法中设置控制器的名称,以便在需要时可以访问它。

另一种方法是制作一些类名对的字典。喜欢这样的

[myDictionary setValue:stringClassName forKey:[MyViewController class]];

从整个应用程序中提供此词典 - 如果此类在您的词典中注册,您将能够随时获得每个班级的名称。