Segment thay đổi ở trạng thái 1 và 2 khi đó label sẽ thay đổi text theo trạng thái của segment
Ban đầu chúng ta tạo một project với việc add vào Storyboard một segment và một label
Tiếp theo để label phản hồi đến View thông qua View Controler chúng ta cần tạo outlet cho đối tượng label bằng cách giữ mouse phải và kéo vào file ViewController.h. Chúng ta chọn Connection là Outlet và Name là lblInfo sau đó ấn vào connect
code tự động sinh ra trong file ViewController.h:
@property (weak, nonatomic) IBOutlet UILabel * lblInfo;
Tương tự ta tạo Outlet cho segment để segment có thay đồi sẽ phản hồi đến view thông qua ViewController
với Connection là Outlet. Name là: segInfo
Để một Control có thể tương tác khi có action thì chúng ta cần phải tạo thêm một Action cho Segment.
Đây là sự khác biệt giữa View và Control. Control có thêm action, còn View thì không
Tại đây ta right click vào segment và chọn Action là change Value để add action khi segment thay đổi value
Name là: segChange
Code tự sinh ra trong file ViewController.m
Chú ý: Khi chúng ta vừa add xong Action cho Segment thì sẽ tự động sinh ra đoạn code trong file ViewController.h và ViewController.m
ViewController.h sẽ phát sinh code:
-(IBAction ) segChange:(id)sender;
ViewController.m phát sinh code: đây là hàm bắt sự kiện khi change value của segment
- (IBAction)segChange:(id)sender {
}
Thực hiện xong công việc add Action và Outlet cho View và Control chúng ta thực hiện việc code để bắt sự kiện khi Segment thay đổi value
Để hiểu hơn tổng quát, chúng ta cần phải bắt sự kiện khi segment thay đổi do vậy ta sẽ code trong trong hàm vừa phát sinh của file ViewController.m
Chúng ta tương tác trên đối tượng View và Control thông qua Outlet
Đối tượng segment của chúng ta có một method trong thư viện là selectedSegmentIndex để lấy vị trí (index) đang được chọn
Để khi load ứng dụng thì Label cũng sẽ thay đổi theo nên ta cần code thêm đoạn code trên vào hàm viewDidLoad (đây là hàm load khi ứng dụng bắt đầu chạy)
Chọn vào First là index của segment =0 nên label sẽ được set text là Segment 0
Chọn vào First là index của segment =1 nên label sẽ được set text là Segment 1
Qua ví dụ trên chúng ta đã tìm hiểu được View là gì Control là gì. Sự khác biệt giữa View và Control
View và Control đều tương tác với View qua Outlet và Control sẽ có sự thay đổi trạng thái nó sẽ phản hồi cho ViewController biết thông qua Action
Tương tác giữa chúng với ViewController như thế nào và đặc biệt là mỗi Control đều có method sẵn trong library để sử dụng, ví dụ như segment có selectedSegmentIndex để lấy index đang được chọn. Chúng ta sẽ không cần phải quan tâm đến việc code bên trong như thế nào. Xcode thú vị phải không nào :D
P/s: View là quản lý các đối tượng View ( label, text field...) và Control ( button, segment... ). Chúng phản hồi thông qua ViewController
View đặt trên StoryBoard
Chúng ta có nhiều màn hình của ứng dụng tức là chúng ta hiểu chúng ta có nhiều View, View này quản lý View và Control














