簡體   English   中英

UIViewController Objective-C類別在Swift中不可用

[英]UIViewController Objective-C category not available in Swift

我在其他問題中讀到,可以輕松地在Swift中使用Objective-C類別方法。 只需將.h文件導入橋接頭中即可。

我為UIViewController類別完成了此操作,但是無法從Swift中訪問其方法(這不是自動完成問題……無法編譯)。

這是該類別的代碼...有什么奇怪的東西還是我錯過了?

#import "UIViewController+LCSideMenuViewController.h"
#import "LCSideMenuViewController.h"

@implementation UIViewController (LCSideMenuViewController)

/**
 Return a reference to the root SideViewController (if exists)
 */

- (LCSideMenuViewController *)sideMenuViewController
{
    UIViewController *viewController = self.parentViewController;

    while (!(viewController == nil || [viewController isKindOfClass:[LCSideMenuViewController class]])) {
        viewController = viewController.parentViewController;
    }

    return (LCSideMenuViewController *) viewController;
}

然后,我嘗試使用以下代碼迅速獲取sideViewController

import UIKit

class TutViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.sideMenuViewController() ... 

    }
.
.
.

我的橋接標頭是:

#import "UIViewController+LCSideMenuViewController.h"

您的橋接頭還應該導入LCSideMenuViewController

#import "LCSideMenuViewController.h"

如果沒有方法的返回類型的定義,則無法編譯Swift代碼。

如果將類別放在頭文件中,則該文件將對swift文件可見。 解決方法是將類別移動到UIViewController+LCSideMenuViewController.h

暫無
暫無

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

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