如何对可选的可选项进行可选绑定?
例如,假设UIViewController的navigationController属性是可选的可选项。我应该使用方法#1还是方法#2,还是有第三种方式?
方法#1
if let navigationController = viewController.navigationController! {
}
或
方法#2
if let optionalNavigationController = viewController.navigationController {
let navigationController = optionalNavigationController {
}
}
答案 0 :(得分:1)
还有另一种解决方案:
<!DOCTYPE html>
<html>
<style>
.red {color:red;}
</style>
<body>
<div id="template">
<div class="row">
<div class="col-xs-3 no">ddd</div>
<div class="col-xs-6 no2">ddd</div>
<div class="col-xs-3 quantity">dddd</div>
</div>
</div>
<div id="target"></div>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var t = document.querySelector('#template');
var clonex = document.importNode(t, true);
document.querySelector('#target').appendChild(clonex);
clonex.classList.add("red");
}
</script>
</body>
</html>
答案 1 :(得分:0)
if let navigationController = viewController?.navigationController
答案 2 :(得分:0)
更多功能编程解决方案:
if let a = optionalOfOptional?.map({$0}) {
println(a)
}
答案 3 :(得分:0)
如果您知道视图控制器具有导航控制器,因为您在Interface Builder中设计了它或以编程方式创建它,请声明一个变量
var navigationController : UINavigationController!
并将viewDidLoad()
中的导航控制器指定为隐式展开的可选
navigationController = viewController!.navigationController!
如果您不知道,请使用正常的可选绑定,如其他答案所述