我刚刚为共享助手制作了一个包装类,我的代码如下。
let activityVC = UIActivityViewController(activityItems: [message], applicationActivities: nil)
activityVC.setValue(subject, forKey: "subject")
activityVC.completionWithItemsHandler = {(activityType: String!, completed:Bool, objects:[AnyObject]!, error:NSError!) in
}
fromVC.presentViewController(activityVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
问题从这里开始,未调用 UIActivityItemSource 方法
override func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
switch activityType
{
case UIActivityTypeMail:
return msg
case UIActivityTypeMessage:
return msg
case UIActivityTypePostToFacebook:
return msg
case UIActivityTypePostToTwitter:
return strTwitterShare
default:
return msg
}
}
Run Code Online (Sandbox Code Playgroud)
感谢帮助
我昨晚更新了一个Xcode 6/iOS 8项目,似乎遇到了一些问题.其中一个是它正在抛出一个致命的错误消息并崩溃应用程序.当按下按钮时,我正在尝试设置下一个按钮.
let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("gameViewController")
self.presentViewController(viewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
然后在gameViewController里面我有这个:
required init(coder aDecoder: NSCoder) {
// SWIFT 2 update
state = .OptionsVisible
super.init(coder: aDecoder)!
//fatalError("init(coder:) has not been implemented")
}
Run Code Online (Sandbox Code Playgroud)
这似乎是抛出致命错误的地方,因为错误消息如下:
fatal error: init(coder:) has not been implemented: file /pathToApp/GameOptionsViewController.swift, line 81
Run Code Online (Sandbox Code Playgroud)
在我更新到所有内容的最新版本之前,这一切似乎都运行良好,我不确定是什么改变了.
我以前用过ALAssetLibrary.并且它具有assetForURL功能,因此我可以在应用程序重新启动后将URL保存到URL NSUserDefaults并ALasset通过URL 检索.
但是,当我换到时PHAsset,我找不到这种功能.我发现的是fetchAssetsWithALAssetURLs,但它会被弃用ALasset,所以我不倾向于使用这个功能.(保存ALAsset网址,并从中检索PHAsset fetchAssetsWithALAssetURLs)
我认为这是将整个PHAsset对象保存到NSUserDefaults关键"localIdentifier" 的唯一方法,所以我可以在应用程序重启后重新加载它.要通过key localIdentifier检索phasset对象.
这是实现目标的好方法吗?其他方法 ?
我在自定义单元格类中使用某些UI组件,我想在willDisplayCell方法中进行配置。最初的定义是
public func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath)
Run Code Online (Sandbox Code Playgroud)
现在使用cell.myTextField.text = "customise"
给出错误,即单元格没有任何组件作为myTextField
为了解决这个问题,我将不得不重新定义方法
public func tableView(tableView: UITableView, willDisplayCell cell: **myCustomCellClass**, forRowAtIndexPath indexPath: NSIndexPath)
Run Code Online (Sandbox Code Playgroud)
任何有关如何执行此操作以及随后如何快速重新定义任何当前类方法的线索都将是很棒的。提前致谢。