相关疑难解决方法(0)

获得最顶级的UIViewController

如果UIViewController没有访问权限,我似乎无法获得最高分UINavigationController.这是我到目前为止:

UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(vc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

但是,它似乎没有做任何事情.在keyWindowrootViewController似乎是非零值太多,所以可选的链接不应该是一个问题.

注意: 做这样的事情是个坏主意.它打破了MVC模式.

uiviewcontroller swift

174
推荐指数
14
解决办法
12万
查看次数

IBOutlet和IBAction

在用于iPhone的Objective-C编码中使用IBAction和IBOutlet的目的是什么,如果我不使用它会有什么不同吗?

iphone objective-c interface-builder iboutlet ibaction

155
推荐指数
5
解决办法
17万
查看次数

为什么关键字"weak"只能应用于类和类绑定协议类型

当我weak在Swift中声明变量时,我有时会收到来自Xcode的错误消息:

'weak'可能只适用于类和类绑定协议类型

我只是想知道为什么关键字weak只能应用于类和类绑定协议类型?它背后的原因是什么?

variables weak-references swift

65
推荐指数
5
解决办法
3万
查看次数

Swift委托 - 何时在委托上使用弱指针

有人可以解释何时何时不对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

42
推荐指数
3
解决办法
2万
查看次数

Interface Builder,@ IBOutlet以及Swift中delegate和dataSource的协议

无法将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 {}不起作用.

还有其他人遇到过类似的东西吗?

interface-builder iboutlet swift

27
推荐指数
4
解决办法
1万
查看次数

Swift中的代表示例

我一直在努力学习如何使用协议进行委派.我理解了一切,但我想不到何时使用委托除了使用表视图和可能滚动视图.

一般来说,何时使用授权?

delegates design-patterns protocols delegation swift

21
推荐指数
2
解决办法
3万
查看次数

View和ViewController有什么区别?

从Delphi来到Swift,我认为View代表了应用程序的GUI,故事板是View底层代码的直观表示.ViewController是View与之交互的唯一对象.当流行的教程

在过去,开发人员曾经为每个视图控制器的设计创建单独的接口文件.

我认为"单独的接口文件"是View文件.但随着我了解更多,我感到困惑.文字说,在新应用程序的空Main.storyboard的屏幕截图下方

视图控制器的官方故事板术语是"场景",但您可以互换使用这些术语.场景代表了故事板中的视图控制器...在这里,您可以看到包含空视图的单个视图控制器.

所以我看到一个"单视图控制器",而不是视图?当我注意到故事板上显示的任何视图(?)在Swift中称为"视图控制器"时,会出现混淆.

那么,View和ViewController有什么区别?故事板是如何相关的?什么对象"拥有"像segue这样的东西,它存在于我对这些概念的理解之外?

swift

10
推荐指数
1
解决办法
8705
查看次数