获取控制器的名称

发布于 2024-08-15 19:37:30 字数 311 浏览 3 评论 0原文

我有一个带有 TabBarController 的 iPhone 应用程序。我可以访问当前的 ViewController

[appDelegate.myTabBarController selectedViewController]

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

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

预先非常感谢&此致。

I have an iPhone application with a TabBarController. I can access the current ViewController with

[appDelegate.myTabBarController selectedViewController]

But how can I get the name of this controller?

For example the name of the selected ViewController is "TestViewController". How can I get this string/name?
I want to check if the current ViewController is "TestViewController".

Thanks a lot in advance & Best Regards.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

任谁 2024-08-22 19:37:30

您可以通过以下方式执行此操作:

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

希望这会有所帮助。

You can do this in this manner:

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

Hope this helps.

去了角落 2024-08-22 19:37:30
 if ([NSStringFromClass([[appDelegate.myTabBarController selectedViewController] class]) isEqualToString:@"TestViewController"])
{
    //do your stuff here
}
 if ([NSStringFromClass([[appDelegate.myTabBarController selectedViewController] class]) isEqualToString:@"TestViewController"])
{
    //do your stuff here
}
温柔一刀 2024-08-22 19:37:30

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

@property(nonatomic, keep) NSString* 名称;

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

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

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

使该词典可在整个应用程序中使用 - 如果该类在您的词典中注册,您将能够随时获取每个类的名称。

you can make a subclass of UIViewController class and add property, for example

@property(nonatomic, retain) NSString* name;

then make all of your viewControllers subclasses of the class with name property. then just set the name of the controller in your -(id)init or -(void)viewDidLoad method to be able to get access to it when you need.

the other way is to make some dictionary of class-name pairs. smth like this

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

make this dictionary available from all over the app - and you will be able to get name for each class at any time you want if this class registered in your dictionary.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文