Hyo*_*Han 1 iboutlet ios swift
对不起,我的英语能力很差。
我想在另一个类中访问IBOutlet。我在stackoverflow中发现了许多问题,但是所有答案在我的代码中均不起作用
首先,这是我的代码。
ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBOutlet var MainViewController: UIView! = nil
@IBOutlet var LyricsViewController: UIView! = nil
@IBOutlet var ListViewController: UIView! = nil
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
showMainViewController()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func showMainViewController(){
MainViewController.alpha = 1
LyricsViewController.alpha = 0
ListViewController.alpha = 0
}
func showLyricsViewController(){
MainViewController.alpha = 0
LyricsViewController.alpha = 1
ListViewController.alpha = 0
}
func showListViewController(){
MainViewController.alpha = 0
LyricsViewController.alpha = 0
ListViewController.alpha = 1
}
}
Run Code Online (Sandbox Code Playgroud)
我想在此类中访问ViewController的函数
SecondViewController.swift
import UIKit
class SecondViewController : UIViewController{
@IBOutlet weak var menuButton: UIButton!
var listBoolean = false
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func LinkListView(sender: AnyObject) {
if(listBoolean == false){
ViewController().showListViewController()
listBoolean = true
}
else{
ViewController().showMainViewController()
listBoolean = false
}
}
}
Run Code Online (Sandbox Code Playgroud)
func showMainViewController()在ViewController的viewDidLoad()中工作,但在SecondViewController中使用此设置时出错
致命错误:展开可选值时意外发现nil
我该如何解决这个问题?
小智 5
您必须创建一个视图控制器对象,然后访问它。例如:-
var dash : abcViewController = storyBoard.instantiateViewControllerWithIdentifier("abc") as! abcViewController
var a = dash.getXYZ()
Run Code Online (Sandbox Code Playgroud)
像这样,您可以访问其他视图控制器的变量和函数。
| 归档时间: |
|
| 查看次数: |
6827 次 |
| 最近记录: |