【问题标题】:Messages Doesn't Display UIActivityViewController Action Items消息不显示 UIActivityViewController 操作项
【发布时间】:2016-02-01 11:37:38
【问题描述】:

我不明白为什么会发生这种情况,所以我正在找人帮忙解释原因。

我在我的代码中进行了此覆​​盖,以解决我在通过 Activity 共享操作在消息中使用蓝色导航栏上的蓝色栏按钮项时遇到的问题(所有其他按钮色调为白色):

extension MFMessageComposeViewController {
  public override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
  }
}

现在,当我尝试通过 UIActivityViewController 共享文本和 NSURL 时,它不再在消息文本区域中显示文本和 url。当我注释掉上面的代码时,它会再次工作并正确显示文本和链接(当然蓝色导航栏上有蓝色栏按钮项目)。

什么会导致这种情况发生?

【问题讨论】:

    标签: ios swift uiactivityviewcontroller mfmessagecomposeview


    【解决方案1】:

    在扩展中,覆盖将使该类的原始功能无效。但继承不会。(如果您调用了super....)

    let vc: MFMessageComposeViewController = …
    vc.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
    

    然后呈现出来。

    【讨论】:

    • 换句话说,扩展中的super是super,但inherit中是self。
    • 谢谢。然后我遇到的问题是我实际上不能调用 MFMessageComposeViewController 因为 Action 菜单调用它,所以我实际上不能告诉它是一个继承的版本。有没有其他方法可以实现修改后的导航栏色调?
    • @JustinStanley 更新了我的答案。
    • @JustinStanley 在扩展程序中覆盖总是很危险的,因为您不知道 Apple 在该功能中做了任何事情。Apple 不喜欢 dev 这样做。
    • @JustinStanley Year,它可能会导致一些错误,但你必须这样做。
    【解决方案2】:

    以下是过去对我有用的方法:

    // Changes Bar Color //
    UINavigationBar.appearance().barTintColor = UIColor.blueColor()
    // Changes Bar Button Color //
    UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UINavigationBar.classForCoder()]).tintColor = UIColor.whiteColor()
    // Set Up & Show ActivityController //    
    let activityController = UIActivityViewController(activityItems: ["YOUR TEXT HERE"], applicationActivities: nil)
    self.presentViewController(activityController, animated: true, completion: nil)
    

    希望这会有所帮助!

    【讨论】:

    • 请看我已经在我的 AppDelegate 中获得了前两行,但 Messages 和 Mail Action 项仍然没有白色 barbuttonitems!我告诉你,这让我发疯!哈哈。其他一切都与它应该的完全一样。
    • 哇,这似乎是一个错误。我将前两行移到 didFinishLaunchingWithOptions() 中,一切正常。我肯定会建议清理您的项目,在设备上卸载并重新安装您的应用程序,然后退出并重新启动 Xcode。
    • 我试试看!
    • 其实……不只是我。我有使用我的应用程序的人说这也是一个问题。所以我认为这实际上是苹果方面的一个问题。 ://
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2014-06-18
    • 2019-02-04
    • 2018-12-20
    相关资源
    最近更新 更多