【发布时间】:2018-08-13 12:07:57
【问题描述】:
我想将当前加载的 ViewController 的名称作为字符串。
我得到了这个运行良好的代码:
if let window = UIApplication.shared.delegate?.window {
var viewcontroller = window!.rootViewController
if(viewcontroller is UINavigationController){
viewcontroller = (viewcontroller as! UINavigationController).visibleViewController
}
print(String(describing: viewcontroller!))
}
但结果看起来不是这样的:
"MyViewController1"
看起来像这样:
<myapplication.MyViewController1: 0x30141e210>
我怎样才能获得 ViewController 的名称/标题?必须有一些更有效的方法,然后在"." and ":" 之间拆分字符串。
编辑:“vc!.nibName”将不起作用,因为我正在使用情节提要!
编辑 2: 结果应该是这样的:"MyViewController1"
编辑 3: print(viewcontroller?.title) 也不起作用。它只是返回“nil”
任何帮助将不胜感激!
【问题讨论】:
-
我想获取当前加载的“ViewController”的类名,-
the ViewController currently displayed to the user-在我的情况下,我使用您可以在上面的问题中找到的代码来获取这个名称和到目前为止,此解决方案正在运行,但它不仅将名称作为字符串返回,而且还返回了这个疯狂的<myapplication.MyViewController1: 0x30141e210>字符串。 我想解决这个问题! @rmaddy @Leo Dabus -
这可以通过你投反对票的答案来完成,我现在已经删除了...
print(String(describing: type(of: viewcontroller!))) -
不行! - 使用@MarcGarcia 的代码将返回“TabBarController”之类的类型,而不是“MyViewController1”!
Just try the code on your own and it will open your minds...:) -
但是这段代码运行良好! 100% - 就像我添加的那样 - 是否自己尝试!
-
我同意@rmaddy。您在此处发布的内容与您拥有的内容不匹配。 Jonas0000 如果你愿意,你可以分享你的完整代码,我会尽力帮助你。
标签: ios swift uiviewcontroller storyboard viewcontroller