簡體   English   中英

UIViewController! 不符合協議“ LogicValue”

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

我正在嘗試將以下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

}

但是我說UIViewController時出錯了! 以下行“ while(cViewController.childViewControllerForStatusBarStyle)”不符合協議“ LogicValue”

如何解決此問題?

childViewControllerForStatusBarStyle()是方法而非屬性

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM