Я продолжаю получать «Раскадровка не содержит контроллера представления с идентификатором okroWebView», даже когда я назначил раскадровку с таким идентификатором. - PullRequest
0 голосов
/ 16 октября 2019

Я создал приложение, которое переключается между контроллером представления с кнопкой в ​​центре и контроллером представления, на котором размещен WkWebView. При нажатии кнопки в первом контроллере представления открывается второй контроллер представления, который отображает веб-сайт в WkWebView. Этот код работает нормально.

Затем я попытался создать этот код в качестве структуры какао, в которой, когда платформа вызывается в анонимном приложении, она переключается с контроллера, который вызвал его, на ViewController, на котором размещен WkWebView. ,Чтобы достичь этого, это означает, что мне нужно было создать раскадровку, которая имела WkWebView в CocoaFramework, который я строил, что я и сделал.

Мой фрагмент кода CocoaFramework, который может получить любой анонимный ViewConttroller, выглядит следующим образом (Okra.create (uiviewController, okroOptions) - это функция, которая переключает viewController):

public class Okro {

    init() {}

    public static func create(baseController : UIViewController, okraOptions: OkroOptions ){
        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
        if let pageTwo =  storyBoard.instantiateViewController(withIdentifier: "okroWebView") as? OkroWebView{
            pageTwo.okroOptions = okroOptions
            pageTwo.baseController = baseController;
            baseController.present(pageTwo, animated:true, completion:nil)
        }
    }
}

кодто же самое с тем, что я использовал для первого приложения, но оно не работало при сборке, я пытался использовать его в качестве Cocoa Framework в другом проекте, с ошибкой, указывающей

Storyboard не содержитконтроллер представления с идентификатором 'okroWebView'.

Разве раскадровки не должны быть внутри проектов CocoaFramework? Как вы думаете, является причиной этой проблемы

...