问题是我不知道如何解雇和呈现只有一个过渡动画的视图控制器.
我的故事板结构是:
我们可以说A控制器是在NavigationController之后,B是Startup引用,C是TabBar ViewController.既乙和Ç与一个模态呈现交叉溶解过渡.
当用户登录到应用程序(来自B)时,C控制器以模态方式呈现,具有翻转水平过渡.当用户注销(来自C)时,B以相同的方式呈现.在A控制器上,我根据用户是否记录执行直接segue到B或C.
我的问题是如果我不从B或C中解除以前的视图控制器,那么该控制器就会泄露.相反,如果我解除它,则在呈现目标控制器(B或C)之前显示A.
是否可以仅显示" 水平翻转"和"查看"视图?
我有@objc这个实现的协议:
@objc public protocol Document: class {
var data: Data? { get }
var image: UIImage? { get }
func generatePreview()
}
Run Code Online (Sandbox Code Playgroud)
我试图在[Document: Int]字典中使用它,但很自然地我得到了这个错误:
类型“文档”不符合协议“Hashable”
问题是我不知道如何使它符合Hashable,因为它是一个@objc协议并且Hashable只在 Swift 中可用。如果我尝试使其符合Hashable,我会收到此错误:
@objc 协议“文档”无法细化非@objc 协议“Hashable”
该协议用作方法中的属性@objc,我想将其保留为“@objc”方法,因为它是@objc委托协议的一部分。
该协议如下所示:
@objc public protocol MyClassDelegate: class {
@objc func methodOne(parameter: [Document: Int])
}
Run Code Online (Sandbox Code Playgroud)
任何的想法?