简体   繁体   English

UIViewController! 不符合协议“ LogicValue”

[英]UIViewController! Does not conform to protocol “LogicValue”

I am trying to convert the following objective-c code to swift: 我正在尝试将以下Objective-C代码转换为Swift:

- (UIViewController *)currentViewController
{
    UIViewController *viewController = self.rootViewController;
    while (viewController.presentedViewController) {
        viewController = viewController.presentedViewController;
    }
    return viewController;
}

#ifdef __IPHONE_7_0

- (UIViewController *)viewControllerForStatusBarStyle
{
    UIViewController *currentViewController = [self currentViewController];

    while ([currentViewController childViewControllerForStatusBarStyle]) {
        currentViewController = [currentViewController childViewControllerForStatusBarStyle];
    }
    return currentViewController;
}

- (UIViewController *)viewControllerForStatusBarHidden
{
    UIViewController *currentViewController = [self currentViewController];

    while ([currentViewController childViewControllerForStatusBarHidden]) {
        currentViewController = [currentViewController childViewControllerForStatusBarHidden];
    }
    return currentViewController;
}

#endif   

//SWIFT

func currentViewController() -> UIViewController {

    var viewController = self.rootViewController

    while (viewController.presentedViewController) {
        viewController = viewController.presentedViewController
    }
    return viewController

}

func viewControllerForStatusBarStyle() -> UIViewController {

    var cViewController = currentViewController()

    while (cViewController.childViewControllerForStatusBarStyle) {
        cViewController = cViewController.childViewControllerForStatusBarStyle
    }
    return cViewController


}

func viewControllerForStatusBarHidden() -> UIViewController {

   var cViewController = currentViewController()

        while (cViewController.childViewControllerForStatusBarHidden) {
            cViewController = cVC.childViewControllerForStatusBarHidden
        }

        return cViewController

}

But I get some errors saying that UIViewController! 但是我说UIViewController时出错了! Does not conform to protocol "LogicValue" at the following line " while (cViewController.childViewControllerForStatusBarStyle)" 以下行“ while(cViewController.childViewControllerForStatusBarStyle)”不符合协议“ LogicValue”

How can I fix this issue? 如何解决此问题?

childViewControllerForStatusBarStyle() is a method not a property childViewControllerForStatusBarStyle()是方法而非属性

   while (cViewController.childViewControllerForStatusBarStyle()) {
        cViewController = cViewController.childViewControllerForStatusBarStyle()
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM