如果UIViewController没有访问权限,我似乎无法获得最高分UINavigationController.这是我到目前为止:
UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(vc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
但是,它似乎没有做任何事情.在keyWindow和rootViewController似乎是非零值太多,所以可选的链接不应该是一个问题.
注意: 做这样的事情是个坏主意.它打破了MVC模式.
在用于iPhone的Objective-C编码中使用IBAction和IBOutlet的目的是什么,如果我不使用它会有什么不同吗?
当我weak在Swift中声明变量时,我有时会收到来自Xcode的错误消息:
'weak'可能只适用于类和类绑定协议类型
我只是想知道为什么关键字weak只能应用于类和类绑定协议类型?它背后的原因是什么?
有人可以解释何时何时不对Swift中的委托指针使用"弱"赋值,为什么?
我的理解是,如果你使用一个未定义为类的协议,你不能也不想将你的委托指针指向weak.
protocol MyStructProtocol{
//whatever
}
struct MyStruct {
var delegate: MyStructProtocol?
}
Run Code Online (Sandbox Code Playgroud)
但是,当您的协议被定义为类类型协议时,您是否要将您的委托设置为弱指针?
protocol MyClassProtocol:Class{
//whatever
}
class MyClass {
weak var delegate: MyClassProtocol?
}
Run Code Online (Sandbox Code Playgroud)
我对么?在Apple的快速指南中,类协议示例并未使用弱分配,但在我的测试中,如果我的代表没有被弱引用,我会看到强大的引用周期.
delegates memory-leaks memory-management swift strong-reference-cycle
无法将CustomView声明为@IBOutlet的委托属性连接到ViewControllerInterface Builder中 - 根本无法建立连接.
这是代码
class CustomView: UIView {
@IBOutlet var delegate: CustomViewDelegate?
}
@objc protocol CustomViewDelegate {
...
}
class ViewController: UIViewController, CustomViewDelegate {
...
}
Run Code Online (Sandbox Code Playgroud)
@objc因为swift协议使用,IBOutlet属性不能有非对象类型,不知道为什么protocol CustomViewDelegate: class {}不起作用.
还有其他人遇到过类似的东西吗?
我一直在努力学习如何使用协议进行委派.我理解了一切,但我想不到何时使用委托除了使用表视图和可能滚动视图.
一般来说,何时使用授权?
从Delphi来到Swift,我认为View代表了应用程序的GUI,故事板是View底层代码的直观表示.ViewController是View与之交互的唯一对象.当流行的教程说
在过去,开发人员曾经为每个视图控制器的设计创建单独的接口文件.
我认为"单独的接口文件"是View文件.但随着我了解更多,我感到困惑.文字说,在新应用程序的空Main.storyboard的屏幕截图下方
视图控制器的官方故事板术语是"场景",但您可以互换使用这些术语.场景代表了故事板中的视图控制器...在这里,您可以看到包含空视图的单个视图控制器.
所以我看到一个"单视图控制器",而不是视图?当我注意到故事板上显示的任何视图(?)在Swift中称为"视图控制器"时,会出现混淆.
那么,View和ViewController有什么区别?故事板是如何相关的?什么对象"拥有"像segue这样的东西,它存在于我对这些概念的理解之外?
swift ×6
delegates ×2
iboutlet ×2
delegation ×1
ibaction ×1
iphone ×1
memory-leaks ×1
objective-c ×1
protocols ×1
variables ×1