Swift:将值从一个 class 转移到另一个,或者从 ViewController class 转移到 NSObject
Swift: Transfer value from one class to another or to be specific from ViewController class to NSObject
如何将值从 UIViewController 中的 viewDidLoad 传输到另一个 class - NSObject。
基本上我有一个 MainViewController class,class 里面是一个导航栏。我想访问导航栏的高度并将值传输到另一个 file/class 这是 -> class SettingsLauncher: NSObject.
我可以访问导航栏高度的唯一方法是在 MainViewController 的 viewDidLoad 中 class。这可能是问题所在!
SettingsLauncher 需要获取导航栏的高度值,以便在导航栏正下方显示一个小视图。
来自以下代码:
navBarHeight 获取导航栏的高度。我如何将该值转移到我的另一个 class (SettingsLauncher)?
let statusBarHeight = UIApplication.shared.statusBarFrame.size.height
let navBarHeight= self.navigationController?.navigationBar.frame.height ?? 0.0
let topBarHeight = statusBarHeight + navBarHeight
像navHeight
一样在SettingsLauncher
中创建一个属性,然后
class SettingsLauncher {
var navHeight: CGFloat?
}
在MainViewController
,
class MainViewController {
override func viewDidLoad() {
super.viewDidLoad()
let statusBarHeight = UIApplication.shared.statusBarFrame.size.height
let navBarHeight= self.navigationController?.navigationBar.frame.height ?? 0.0
let topBarHeight = statusBarHeight + navBarHeight
let settings = SettingsLauncher()
settings.navHeight = topBarHeight //navBarHeight
}
}
在 MainViewController
class 中创建一个结构,像这样:
class MainViewController: UIViewController {
struct structure {
static var topBarHeight = CGFloat()
}
override func viewDidLoad() {
super.viewDidLoad()
let statusBarHeight = UIApplication.shared.statusBarFrame.size.height
let navBarHeight= self.navigationController?.navigationBar.frame.height ?? 0.0
structure.topBarHeight = statusBarHeight + navBarHeight
}
}
然后用它来访问 SettingsLauncher
对象的值:
class SettingsLauncher {
var navHeight = MainViewController.structure.topBarHeight
}
如何将值从 UIViewController 中的 viewDidLoad 传输到另一个 class - NSObject。
基本上我有一个 MainViewController class,class 里面是一个导航栏。我想访问导航栏的高度并将值传输到另一个 file/class 这是 -> class SettingsLauncher: NSObject.
我可以访问导航栏高度的唯一方法是在 MainViewController 的 viewDidLoad 中 class。这可能是问题所在!
SettingsLauncher 需要获取导航栏的高度值,以便在导航栏正下方显示一个小视图。
来自以下代码:
navBarHeight 获取导航栏的高度。我如何将该值转移到我的另一个 class (SettingsLauncher)?
let statusBarHeight = UIApplication.shared.statusBarFrame.size.height
let navBarHeight= self.navigationController?.navigationBar.frame.height ?? 0.0
let topBarHeight = statusBarHeight + navBarHeight
像navHeight
一样在SettingsLauncher
中创建一个属性,然后
class SettingsLauncher {
var navHeight: CGFloat?
}
在MainViewController
,
class MainViewController {
override func viewDidLoad() {
super.viewDidLoad()
let statusBarHeight = UIApplication.shared.statusBarFrame.size.height
let navBarHeight= self.navigationController?.navigationBar.frame.height ?? 0.0
let topBarHeight = statusBarHeight + navBarHeight
let settings = SettingsLauncher()
settings.navHeight = topBarHeight //navBarHeight
}
}
在 MainViewController
class 中创建一个结构,像这样:
class MainViewController: UIViewController {
struct structure {
static var topBarHeight = CGFloat()
}
override func viewDidLoad() {
super.viewDidLoad()
let statusBarHeight = UIApplication.shared.statusBarFrame.size.height
let navBarHeight= self.navigationController?.navigationBar.frame.height ?? 0.0
structure.topBarHeight = statusBarHeight + navBarHeight
}
}
然后用它来访问 SettingsLauncher
对象的值:
class SettingsLauncher {
var navHeight = MainViewController.structure.topBarHeight
}