我使用以下代码分享一些内容
var textToShare = "Test"
let activityVC = UIActivityViewController(activityItems: [textToShare], applicationActivities: nil)
activityVC.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact]
presentViewController(activityVC, animated: true, completion: nil)
但是当我按下取消按钮或成功共享内容时,应用程序显示一个空白屏幕。
如何解决此问题?
更新:
当我为共享目标选择邮件或短信应用时,会出现空白屏幕,对于电报,Twitter和Facebook,它的工作正常。
我评论了生命周期方法中的所有代码,仍然是同样的问题。
override func viewDidAppear(animated: Bool)
{
//setControlsAreHidden(true)
}
override func viewWillAppear(animated: Bool)
{
//if dataAddedToView
//{
// activityIndicator?.removeFromSuperview()
//}
}
override func viewWillDisappear(animated: Bool)
{
//setControlsAreHidden(false)
}
答案 0 :(得分:1)
在呈现内容时,您首先需要检查视图控制器是否未被销毁。呈现视图控制器的生命周期管理例程(例如,ViewWillDisappear)中的一些调试语句可能会有所帮助。
如果问题源于ViewController消失,则需要适当地重新创建它。
另请查看您提供内容的任何地方:是否会在正确的时间触发绘制?
此外,确保您根据需要使用API(例如,在所需的所有方法中调用超类,例如视图控制器生命周期例程)。参见:
这些是我会关注和/或提供相关代码的领域。
答案 1 :(得分:1)
当您在当前MFMailComposeViewController
上方提出MFMessageComposeViewController
和UIViewController
时,如果您在发送邮件后解除MFMailComposeViewController
或MFMessageComposeViewController
,那么UIViewController
当视图再次出现时,将调用1}} viewWillAppear
方法,因此在我看来,请检查viewWillAppear
或viewWillDisappear
方法是否正在查看nil
。< / p>
答案 2 :(得分:1)
我在viewDidAppear,viewWillAppear或viewWillDisappear方法中看不到对超级实现的任何调用。
如果你这样做会怎么样?:
override func viewDidAppear(animated: Bool)
{
super.viewDidAppear(animated)
//setControlsAreHidden(true)
}
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
//if dataAddedToView
//{
// activityIndicator?.removeFromSuperview()
//}
}
override func viewWillDisappear(animated: Bool)
{
super.viewWillDisappear(animated)
//setControlsAreHidden(false)
}
答案 3 :(得分:1)
也许你没有在正确的视图中展示活动视图控制器,尝试这样的事情:
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
这是一个客观的C代码,但仅作为如何设置视图的示例。
如果您需要如何查看iOS版本:
§
答案 4 :(得分:1)
我遇到了同样的问题,并且能够通过调整我的主要UIView的大小限制来解决它。
之前的代码:
override func loadView() {
self.view = UIView()
self.view.translatesAutoresizingMaskIntoConstraints = false
}
之后的代码:
override func loadView() {
self.view = UIView()
}
所以只需删除self.view.translatesAutoresizingMaskIntoConstraints = false
这可能并不适用于所有人,但根据其他人的回答,我认为如何显示可能导致同样问题的视图存在各种问题。如果我的修复程序对您不起作用,我建议在问题消失之前注释掉所有不必要的代码,然后有条不紊地将小部分内容重新联机,在此过程中进行测试以确定您的问题。