2016-12-25 3 views
1

Alright Im создает приложение расширения сообщения с uicollectionview с заголовком и нижним колонтитулом. После нескольких попыток я узнал, почему я не смог открыть URL из контроллера сообщений с использованием обычного синтаксиса - потому что его расширение должно использовать:Swift: невозможно открыть url из extensioncontext в uiCollectionView?

let url: URL = URL(string: "http://www.google.com")! 
    self.extensionContext?.open(url, completionHandler: { (success: Bool) in 
     print("hi") 
    }) 

И это компилируется, но не работает в файле MessageViewController. Я не знаю почему, но затем в моем

class FooterCollectionReusableView: UICollectionReusableView { 

это не скомпилировано. Я получаю ошибку enter image description here

Как я могу открыть URL-адрес моего нижнего колонтитула в своем расширении? Это возможно?

ответ

0

Похоже, вы вызываете extensionContext на свой FooterCollectionReusableView. :- свойство UIViewController, поэтому, если вы хотите ссылаться на него с точки зрения, вам нужно будет сохранить ссылку на расширение родительского контроллера расширения, или create a protocol, что позволит вам вызвать родительский контроллер представления, чтобы сделать все, что вам нужно выполняться с расширениемContext.

+0

Да, но проблема в том, что url не открывается даже в диспетчере сообщений - он просто завершает блок завершения, но не открывает сафари – skyguy

+0

что-то не так с моим url? – skyguy

+0

Возможно, это связано с тем, что расширение Today является технически единственным расширением, которое должно открыть другие приложения. Этот вопрос будет более конкретным. Http://stackoverflow.com/questions/38319433/can-imessage-extension-open-host-app – Samantha