iOS - 访问未知 View Controller 中的属性

标签 ios class casting

在 appDelegate 中,我想做一些事情以防可见 View Controller 是类 MyViewController。然后我想检查 MyViewController 类中定义的属性 myVar 。这是我的代码:

UIViewController *vc = [self visibleViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
if ([vc isKindOfClass:[MyViewController class]]) {
    if (vc.myVar == "foo") {
         // do something
    }
}

我有一条错误消息:在“UIViewController *”的对象类型上找不到属性 myVar 我现在如何告诉代码我确定 vc 是一种 MyViewController 类?

最佳答案

你需要做的就是类型转换

UIViewController *vc = [self visibleViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
if ([vc isKindOfClass:[MyViewController class]]) {
    if ([(MyViewController *)vc myVar] == "foo") {
         // do something
    }
}

关于iOS - 访问未知 View Controller 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25120840/

相关文章:

python - 从另一个文件中的一个文件访问类实例?

c - 是否可以在执行期间永久更改指针类型? (C语言编程)

java - 尽管不允许多重继承,但一个类如何扩展另一个类,扩展 Object 类?

java - 在调试中找到类

c# - 类型转换是代码设计不当的标志吗?

将 int 指针转换为 char ptr,反之亦然

android - 如何在 ionic2 iframe 中加载动态视频 url

iphone - iOS:MFMailComposeViewController 不适用于模型

IOS - 如何强制 View 为横向

ios - 每当应用程序在 iOS 中启动时,注册 token 是否会刷新?