Giới thiệu Scene và Segue trong Swift

281

Bài viết được sự cho phép của tác giả Trần Hữu Cương

I. Scene trong Swift

Scene là các màn hình do View Controller quản lý và làm việc hiển thị giao diện người dùng.Vì vậy khi bạn tạo Scene cũng chính là bạn tạo đối tượng View Controller vào trong Storyboard.

+Cách tạo Scene:

-Các bạn tìm kiếm View Controller trong ô tìm kiếm và kéo vào Storyboard vừa tạo.

Giới thiệu Scene và Segue trong Swift

Và đây chúng ta đã có một Scene

Giới thiệu Scene và Segue trong Swift

-Tiếp theo tạo class kế thừa từ UIViewController để quản lý màn hình vừa tạo.

Giới thiệu Scene và Segue trong Swift

Để Xcode hiểu class vừa tạo là file quản lý màn hình thì chúng ta phải khai báo ở đây.

Giới thiệu Scene và Segue trong Swift

Để màn hình nào đó chạy đầu tiên thì bạn cần cài đặt trong Storyboard.

Các bạn hãy click vào checkbox Is initial View Controller.

Giới thiệu Scene và Segue trong Swift

Tìm việc làm code swift lương cao không cần kinh nghiệm cho bạn tại đây

II. Segue trong Swift

1. Segue là gì?

Segue có tác dụng là chuyển tiếp giữa các màn hình với nhau,giống intent trong Android.

+Có 4 loại Segue là

-Show :Hiển thị view controller mới nhưng sẽ đưa view controller cũ vào stack để có thể điều hướng quay trở lại khi chúng click vào back.

-Present Modally:Hiển thị view controller mới nằm đề lên view controller cũ khi view controller mới đóng thì view controller cũ vẫn được hiển thị trên màn hình.

-Present as Popover:Hiển thị view controller trong popover.

-Custom:Cho phép bạn tự tạo các thao tác chuyển tiếp theo ý mình.

Ví dụ:

-Sử dụng storyboard

giờ các bạn hãy tạo 2 màn hình như sau gồm 2 button :

Giới thiệu Scene và Segue trong Swift

Và các bạn nhớ phải tạo View controler để quản lý từng màn hình.

Để tạo segue các bạn hãy click vào button “Go to scene 2” rồi chuột phải và kéo sang màn hình thứ 2 .

Và đây là kết quả các bạn sau khi tạo

Giới thiệu Scene và Segue trong Swift

Khi tạo thành công nó sẽ có mũi tên liên kết của Segue giữa các màn hình với nhau.

2. Cách truyền dữ liệu sử dụng Segue

Tại màn hình 2 các bạn khai báo biến để bên màn hình gọi truyền dữ liệu vào.

Tại màn hình 1 overite lại phương thức prepare

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
 let data = segue.destination as! ViewController2
 data.strDataFromView1=“Hello"
}

Tại màn hình 2 các bạn chỉ việc set text cho button ,với data đã truyền từ màn hình 1 qua.

class ViewController2: UIViewController {
 var strDataFromView1:String?
@IBOutlet weak var btn_back_to_scene: UIButton!
 override func viewDidLoad() {
super.viewDidLoad()
 btn_back_to_scene.setTitle(strDataFromView1, for: .normal)
}
}

3. Cách quay lại màn hình trước sử dụng Segue

Sử dụng tính năng “unwind” , cho phép cài đặt một phương thức trong ViewController của scene để thực hiện hành động quay lại khi sử dụng segue kết nối các scene với nhau.

Chúng ta khai báo hàm unwind trong View controller 1

@IBAction func unwindTonameMain(_ unwindSegue: UIStoryboardSegue) {
 let sourceViewController = unwindSegue.source
}

Tại màn 2 các bạn chỉ cần kéo view button muốn click quay lại vào nút Exit và chọn “unwindToMain”

Giới thiệu Scene và Segue trong Swift

Bài viết gốc được đăng tải tại codecute.com
  Các cách sử dụng AS, AS?, AS! một cách hiệu quả và an toàn trong code Swift
  Hằng và biến trong Swift
Xem thêm Việc làm it hà nội, đà nẵng, hồ chí minh hấp dẫn trên TopDev