我希望這個問題不下來投給自己不夠具體,因爲我認爲,這個問題是非常具體(約一般,有時是模糊的概念)。什麼是構建用戶配置文件的MVC模型,特別是何時在UIViewController和UIView之間進行選擇?
當創建用戶配置文件,例如,如何嚴格應當(或可以)MVC模式被遵守,以及什麼,如果有的話,對開發這種類型的屏幕的最佳實踐,當談到「控制器」與「觀點」?
當我開始在UIViewController中(如下圖),我問自己,爲什麼是的UIViewController繪製資料界面,當我讀到的一切MVC說,資料界面是一個視圖,不是控制器。該控制器責任,按照我的理解,就像是從模型文件中的包抓取數據和處理的導航處理功能。
的UIViewController
class ProfileViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// set background color
self.view.backgroundColor = UIColor.white
// load banner
banner(profileHasCustomBanner: false)
}
// banner
func banner(profileHasCustomBanner: Bool) {
let bannerHeight: CGFloat = profileHasCustomBanner ? 300 : 150
let bannerImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: bannerHeight))
bannerImageView.image = #imageLiteral(resourceName: "profile-image")
view.contentMode = .scaleAspectFit
view.addSubview(bannerImageView)
}
}
在上面的例子中,UIViewController中中有一個UIView(配置文件的橫幅圖像)。但是視圖應該是一個包含所有屏幕視圖的單獨文件嗎?不過,話又說回來,旗幟依賴於對用戶繪製它的接口數據,所以它必須經過控制器,所以旗幟不屬於在控制器,對不對?
我要遵守MVC模型儘可能,因此如何在用戶配置文件「應該」走近?具體來說,UIViewController應該處理關於用戶配置文件的事情,具體是UIView應該處理的是什麼?
的UIView
class UserProfileView: UIView {
// do all user profile UIViews go here?
// is this supposed to be a separate file from the file that contains the UIViewController?
}