如何在此扩展程序中创建一个按钮,在不使用操作按钮的情况下在主应用程序中打开特定视图?

Posted

技术标签:

【中文标题】如何在此扩展程序中创建一个按钮,在不使用操作按钮的情况下在主应用程序中打开特定视图?【英文标题】:How can I create a button in this extension which opens up a specific view in the main app without using the action buttons? 【发布时间】:2019-07-05 09:52:53 【问题描述】:

我正在 ios 中设置通知内容扩展,并想添加一个按钮,用于在主应用程序中打开特定视图。

我可以通过操作按钮(在底部)做到这一点,但想在扩展视图本身中添加一个按钮。

@IBAction func btn_openapp(_ sender: Any)

    let mystring = "mydrop://" + String(campaign_id)
    self.extensionContext?.open(URL(string: mystring)!, completionHandler: nil)



func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool


    d_me["single"] = url.host

    print(url.host,url.scheme)
    if url.scheme == "mydrop://"
    
        let rootViewController = self.window!.rootViewController as! UINavigationController
        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let targerView = mainStoryboard.instantiateViewController(withIdentifier: "CampaignDetailViewController")
        rootViewController.pushViewController(targerView, animated: false)

    
    return true

【问题讨论】:

到目前为止你有什么尝试? 请分享一些代码以便更好地理解。 您好 Jan,请添加 minimal reproducible example,以便我们能够更恰当地回答您的问题。 这是来自应用内容扩展和 AppDelegate(在应用本身中)的代码。但是,它不会打开特定视图。我需要在代码中添加什么才能打开特定视图? func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool if url.scheme == "mydrop://" let rootViewController = self.window!.rootViewController 为! UINavigationController let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) let targerView = mainStoryboard.instantiateViewController(withIdentifier: "CampaignDetailViewController") rootViewController.pushViewController(targerView, animated: false) return true 【参考方案1】:

您不应该尝试在扩展中添加存储属性。如果您需要一个存储属性,在本例中是一个按钮,您应该根据您的用例创建一个 UIView 或 UIViewController,并将其关联到另一个 UIView 或 UIViewController。

您还应该尝试分享一些代码,因为不清楚您要的是什么。

【讨论】:

以上是关于如何在此扩展程序中创建一个按钮,在不使用操作按钮的情况下在主应用程序中打开特定视图?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中创建浮动操作按钮

在android中创建带圆角的按钮[重复]

使用 JButton 在 Java 中创建自定义按钮

在 Xcode 中创建按钮

如何在情节提要中创建一个按钮以启动在 xcode swift 中使用 spritekit 创建的游戏

如何在 iOS 的 xamarin 表单中创建渐变按钮背景