Trong bài học trước, bạn đã được học về cách thức sử dụng storyboard để tạo và quản lý các màn hình. Tuy nhiên, đối với những project có quá nhiều màn hình thì việc sử dụng một  storyboard sẽ khiến việc quản lý trở nên khó khăn hơn. Một trong những cách để giải quyết vấn đề này là bạn tạo nhiều storyboard. Mỗi storyboard sẽ chỉ quản lý một số màn hình có mối liên quan với nhau mà thôi. Bạn có thể hiểu theo cách khác thì đây được xem như giải pháp “chia để trị”. Và bài viết này, mình sẽ hướng dẫn bạn cách thức tạo và quản lý nhiều Storyboard trong lập trình iOS.


Vì sao cần sử dụng nhiều Storyboard trong một project?


Như mình đã viết ở trên, nếu trong ứng dụng của bạn có quá nhiều màn hình (scene) thì việc quản lý nhiều màn hình như vậy trong cùng một Storyboard:

  • Sẽ khá phiền phức do khó bao quát hết các màn hình.
  • Việc điều hướng (navigation) giữa nhiều màn hình cũng sẽ trở nên phức tạp và “rối mắt” hơn.

Giải pháp: bạn có thể tổ chức nhiều Storyboard khác nhau. Lúc này, mỗi một Storyboard sẽ chỉ cần quản lý một nhóm các màn hình (scene) nhất định.
☞ Do đó bạn cần nắm phương pháp liên kết với Storyboard.

Tuỳ theo từng trường hợp mà có 02 cách để tạo và sử dụng nhiều Storyboard.

Cách 1 – Tách Storyboard

Đây là phương pháp giúp bạn tạo nhiều storyboard bằng cách tách bớt các màn hình (scene) từ một storyboard đã có thành storyboard mới. Để minh hoạ cho phần này, mình sẽ sử dụng lại ví dụ của bài trước nhé. Trong ví dụ này, mình sẽ thiết kế thêm một màn hình (Scene 03), đồng thời tạo liên kết với Scene 02. Bạn có thể xem hình minh hoạ bên dưới:
Storyboard trong lập trình iOSMình nghĩ là thời điểm này bạn đã có thể tự làm được scene 03, do đó mình sẽ không nhắc lại nữa nhé. Bạn nào quên thì nên xem lại bài trước nhé. Bây giờ, mình sẽ thực hiện tách Scene 03 sang một Storyboard mới, các bước thực hiện như sau:

  1. Chọn Scene 03 trên giao diện. Nếu bạn cần tách những màn hình nào thì cứ chọn trong bước này nhé.
  2. Vào menu Editor ➜ Refactor to Storyboard… để thực hiện tách những màn hình đã chọn sang storyboard mới.
  3. Đặt tên cho tập tin Storyboard mới, ví dụ: Second.storyboard

Đến đây là hoàn tất rồi, bạn sẽ nhận được kết quả như thế này:
Storyboard trong lập trình iOS

  • Màn hình Scene 03 sẽ được tách sang Storyboard mới có tên Second.
  • Lúc này, màn hình Scene 02 vẫn sẽ được liên kết với màn hình Scene 03 gián tiếp qua Second.Storyboard.
    Storyboard trong lập trình iOS

☞ Tới đây, bạn hãy chạy thử để thấy kết quả nhé.

Cách 2 – Tự tạo liên kết

Đối với cách này, chúng ta sẽ tự tạo một Storyboard mới ngay từ đầu, sau đó liên kết với Storyboard đã có. Để minh hoạ cho cách này, mình sẽ tiếp tục sử dụng ví dụ vừa làm ở cách 1 luôn nhé.

Ví dụ: Trong ví dụ này, bạn hãy tạo Storyboard mới với tên Third.storyboard. Sau đó thêm màn hình (Scene 04) vào Storyboard này. Ví dụ này, mình sẽ liên kết màn hình (Scene 03) bên trong Second.storyboard của ví dụ trước tới màn hình (Scene 04) trong Third.storyboard. Bạn hãy lần lượt thực hiện các bước sau:

  1. Bổ sung thêm button “Go to Scene 04” trên Scene 03.
  2. Kéo thả đối tượng Storyboard Reference vào Interface Builder. Storyboard Reference là đối tượng giúp bạn tạo liên kết với một Storyboard nào đó. Bạn sẽ liên kết Button “Go to Scene 04” với Storyboard Reference như liên kết với màn hình thông thường.

Storyboard trong lập trình iOSTới đây vẫn chưa xong đâu bạn nhé, bạn vẫn còn phải thực hiện việc cuối nữa. Đó là cấu hình Storyboard Reference để tạo liên kết:

  1. Thiết lập Storyboard IDScene4Controller cho màn hình Scene 04 trong cửa sổ Identity Inspector (View ➜ Utilities ➜ Show Identity Inspector).
    Storyboard trong lập trình iOS
  2. Bạn chọn Storyboard Reference (tạo trong bước 2), và cấu hình như sau:
    Storyboard trong lập trình iOS

OK, tới đây là đã hoàn thành rồi đấy bạn. Nếu bạn vẫn chưa hiểu các bước trên thì hãy xem lại video dưới đây nhé.


Tổng kết


Bài viết này mình đã hướng dẫn bạn phương pháp tạo và quản lý nhiều Storyboard trong lập trình iOS. Bài viết này được viết với mục đích bổ sung thêm nội dung cho bài trước. Do đó nội dung cũng không quá dài và không quá nhiều ý, vì vậy mình mong là bạn có thể hiểu và vận dụng được.

Nếu có bất kỳ thắc mắc hay trao đổi nào, thì bạn hãy comment bên dưới nhé.

Khu vực Thảo luận

Viết bình luận

avatar