Phương pháp phân chia để quản lý Storyboard
Bài đăng này đã không được cập nhật trong 8 năm
Khi App chúng ta lập trình phức tạp lên → số lượng view tăng lên, nếu chỉ đặt trong một Storyboard thì các view sẽ rất là khó nhìn. Chính vì vậy mà bài viết này mình xin giới thiệu đến các bạn giải pháp sử dụng Storyboard Reference
để phân chia ra nhiều Storyboard cho việc quản lý trở nên dễ dàng hơn.
Demo
Cách làm
1. Tạo project mới dạng Tabbed Application
rồi sau đó chúng ta xoá First View
và Second View
đi
2. Do đây là Tab App nên chúng ta sẽ tạo mỗi tab là một Storyboard, sử dụng phím ⌘+N để tạo ra 3 file Storyboard (A.Storyboard, B.Storyboard, C.Storyboard)
3. Sử dụng Storyboard Reference
để thiệt lập cho 3 tab như hình dưới
4. Setting để 3 Storyboard Reference đó trỏ đến 3 Storyboard mà chúng ta vừa mới tạo mới
5. Sử dụng control + drag
để kết nối Segue
đến các Storyboard Reference
Setting đến 3 cái như nhau:
6. Setting các Storyboard tab đã tạo
Ở Settings View Controller
check vào Is Initial View Controller
Do đã được kết nối đến Tab Bar Controller
nên ta thiết lập Tab Bar Item
Tiện thể Nhập ID của Storyboard
Setting cho 2 Storyboard còn lại tương tự như vậy
Sửa đổi View của Tab lúc khởi động
Default thì tab đầu tiên bên trái chính là tab được hiển thị đầu tiên.
Để thay đổi thì chúng ta sẽ can thiệp vào selectedIndex
ở trong file AppDelegate.swift
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if let initialTab = self.window!.rootViewController as? UITabBarController {
// 0 là vị trí đầu tiên ở bên trái
initialTab.selectedIndex = 2 //đây là vị trí thứ 3 tính từ trái sang
}
return true
}
func applicationWillResignActive(_ application: UIApplication) {
}
func applicationDidEnterBackground(_ application: UIApplication) {
}
func applicationWillEnterForeground(_ application: UIApplication) {
}
func applicationDidBecomeActive(_ application: UIApplication) {
}
func applicationWillTerminate(_ application: UIApplication) {
}
}
Thay đổi Storyboard load lúc khởi động
Khi không muốn sử dụng Tab Bar Controller
để phân chia các Storyboard thì lúc khởi động chúng ta có thể tuỳ ý chỉ định cho các Storyboard nào đó mà chúng ta muôn
Để làm như vậy ta vào Project → Target → General → Main Interface
để settings
Nguồn tham khảo
All rights reserved