【问题标题】:UINavigationBar is hiding when activityViewController is presented呈现 activityViewController 时 UINavigationBar 隐藏
【发布时间】:2016-03-28 20:20:31
【问题描述】:

我的项目在 Storyboard 中是完整的,我在 NavigationController 中嵌入了一个 UITableViewController,并且在每个单元格上我都有一个共享通知的按钮。

   @IBAction  func shareSheetButtonFeed(sender: AnyObject) {
        let btnPos: CGPoint = sender.convertPoint(CGPointZero, toView: self.tableView)
        let indexPath: NSIndexPath = self.tableView.indexPathForRowAtPoint(btnPos)!
        passaValor = Int(indexPath.row)
        let printtestess = (objects?[passaValor] as! PFObject)

        let textToShare: AnyObject = (printtestess.objectForKey("subject")! as! String) + " - Cheque agora em:"


        let myWebsite = NSURL(string:"http://www.mysite.com.br/")
        let img: UIImage = UIImage(named: "myLogo-1024x1024")!

        guard let url = myWebsite else {
            print("nothing found")
            return
        }
        self.navigationController?.setNavigationBarHidden(false, animated: true)
        let shareItems:Array = [img, textToShare, url]
        let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
        activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo]
        self.presentViewController(activityViewController, animated: true, completion: nil)  
        }

问题是,当我单击按钮时,会显示 shareSheet,在我选择社交网络(如 Twitter 或 Facebook)后,我之前的 NavigationBar 就会消失。

我尝试在按钮内使用这条线解决问题,当我再次单击按钮时,导航栏重新出现:

self.navigationController?.setNavigationBarHidden(false, animated: true)

所以我尝试将这一行放在ViewWillAppear 中,但没有成功。

Obs:我正在使用自动布局

谢谢。

【问题讨论】:

    标签: swift uinavigationcontroller storyboard


    【解决方案1】:

    尝试等到共享表关闭以显示导航栏。为此,请在UIActivityViewController 上设置completionWithItemsHandler 属性。

    activityViewController.completionWithItemsHandler = { _ in
        self.navigationController?.setNavigationBarHidden(false, animated: true)
    }
    

    【讨论】:

    • 完美的解决方案,我只需要等待16个小时就能获得赏金。
    猜你喜欢
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多