Phát triển trên iPhone (5): ứng dụng đầu tiên của chúng tôi (III)

En bài viết trước của chúng tôi Chúng tôi đã bao gồm Nhãn, Trường văn bản và Nút trong giao diện ứng dụng của mình. Chúng tôi muốn nội dung của Nhãn được cập nhật với những gì được nhập vào Trường văn bản khi nhấp vào Nút. Chúng tôi đã (bước 1) tạo dự án và (bước 2) sử dụng InterfaceBuilder để xác định màn hình. Bây giờ chúng ta sẽ tiếp tục các bước còn lại để ứng dụng hoạt động.

Bước 3. Tạo các biến trong ViewController.

Chúng tôi có giao diện của chúng tôi một cách chính xác. Trên thực tế, nếu chúng tôi thực hiện Build & Go, chúng tôi có thể thấy chúng tôi đang hoạt động như thế nào:

Nhưng rõ ràng là không có gì xảy ra khi nhấn nút, bởi vì chúng tôi đã không thực hiện những phát triển thiết yếu tối thiểu. Trong bước 3 này, chúng tôi sẽ giới thiệu các biến và phương thức trong HelloWorldViewController, cả trong giao diện (tệp .h) và trong thực thi (tệp .m). Để làm điều này, như chúng tôi đã chỉ ra ở cuối bài trước, chúng ta phải biết rằng TextField tương ứng với một lớp UITextField và Nhãn cho một lớp UILabel. 2 lớp này nằm trong khuôn khổ UIKit.

Nếu chúng ta chưa đóng và lưu Interface Builder, chúng ta thực hiện và trong XCode, chúng ta mở tệp HelloWorldViewController.h. Mã ngay bây giờ sẽ có một cái gì đó như thế này:

Chúng tôi đã xem xét một số Objective-C. Trong đoạn mã này, chúng ta thấy một khai báo nhập của thư viện UIKit, nơi chứa các lớp UILabel và UITextField. Chúng ta thấy giao diện được khai báo như thế nào và nó mở rộng từ UIViewController chung của UIKit.

Trong mã giao diện, chúng tôi bao gồm mã sau:

Bây giờ chúng tôi có thể giải thích những gì chúng tôi đã làm:

  • Chúng ta đã khai báo bên trong khối @interface 2 thuộc tính kiểu UILabel và UITextField, với 2 tên biến tương ứng là * label và * textField. Phía trước xuất hiện IBOutlet. Tất cả những thứ ...... này là gì? Chúng tôi tự giải thích. IBOutlet không phải là một loại biến; là một chỉ thị giúp Interface Builder biết được sự tồn tại của các biến kiểu UILabel và UITextField này. Nhân tiện, hãy nhớ rằng trong bài viết trước, chúng tôi đã cung cấp cho bạn một thủ thuật để biết các loại biến của các đối tượng điều khiển (nút, nhãn, trường văn bản, v.v.) trong Trình tạo giao diện. Mặt khác, vấn đề * ở phía trước tên biến có thể làm các lập trình viên Java ngạc nhiên, không phải là quá nhiều đối với C ... nhưng hãy hiểu rằng đây là cách bạn sẽ viết các biến cá thể trong Objective-C.
  • Các thuộc tính UILabel và UITextField được khai báo. nonatomic và giữ lại chúng ta sẽ không thấy bây giờ, nó liên quan đến quản lý bộ nhớ.
  • Chúng tôi thấy rằng chúng tôi khai báo một phương thức, updateText. Nó có một dấu - ở phía trước, cho biết rằng nó là một phương thức thể hiện chứ không phải một phương thức lớp (dấu + được giải thích cho chúng). Chúng ta không thể giải thích điều này vì đây là lập trình hướng đối tượng cơ bản ... Phương thức đó không trả về bất kỳ thứ gì (nghĩa là void) và nhận một tham số kiểu id. Về cơ bản, nó đề cập đến mã định danh của đối tượng sẽ thực hiện lệnh gọi đến phương thức updateTexto của chúng tôi, phương thức này sẽ cập nhật giá trị của nhãn. Chúng ta có thể đoán vì điều khiển đó sẽ là nút chính nó ...

Khi điều này được thực hiện, chúng ta đã hoàn thành bước 3.


Bước 4. Liên kết các Điều khiển Chế độ xem với Biến Bộ điều khiển.

Nếu chúng tôi xem xét, một mặt chúng tôi đã phát triển giao diện của mình với Interface Builder và mặt khác chúng tôi có các biến liên quan đến các điều khiển đó trong HelloWorldViewController.h (giao diện của lớp bộ điều khiển HelloWorldViewController.m). Tuy nhiên, vẫn không có mối quan hệ nào giữa khung nhìn và trình điều khiển, nghĩa là chúng tôi chưa đưa ra bất kỳ hướng dẫn nào để liên hệ, ví dụ: trường văn bản mà chúng tôi thiết kế trong Trình tạo giao diện với biến kiểu UITextField mà chúng tôi đã đặt trong lớp học. Bây giờ chúng ta sẽ làm nhiệm vụ này. Chúng tôi mở lại Trình tạo giao diện bằng cách nhấp vào HelloWorldViewController.xib, nhấp vào hộp văn bản và trong bảng Thanh tra, chúng tôi chuyển đến tab thứ hai (Kết nối trường văn bản). Chúng tôi thấy rằng có một phần được gọi là Referencing Outlets, không có bất kỳ điều gì được đánh dấu. Điều đó có nghĩa là tại thời điểm này, Interface Builder không biết bất kỳ mối quan hệ nào giữa trường văn bản này và IBOutlet (Interface Builder Outlet) của một lớp ... nhưng chúng tôi có một UITextField IBOutlet trong HelloWorldViewController của chúng tôi, vì vậy chúng tôi sẽ liên kết nó.

Để thực hiện việc này, như chúng ta thấy trong hình, bằng cách nhấp vào vòng tròn nhỏ bên cạnh «Cổng tham chiếu mới», chúng tôi kéo đến Chủ sở hữu tệp của cửa sổ có tên HelloWorldViewController.xib. Nó sẽ cho chúng ta chọn 2 tùy chọn, view (toàn bộ) và textField (biến của chúng ta). Rõ ràng là chúng tôi chọn textField, và do đó chúng tôi liên hệ hộp văn bản của mình với biến có kiểu UITextField của nó. Nhân tiện, Chủ sở hữu tệp hoặc chủ sở hữu của tệp không nhiều hơn hoặc ít hơn lớp bộ điều khiển của chúng tôi ...

Chúng tôi lặp lại thao tác với nhãn, liên hệ nó với nhãn biến bộ điều khiển của chúng tôi. Và với nút, nó là một cái gì đó khác biệt. Trong trường hợp này, chúng tôi sẽ liên hệ nó với hoạt động updateTexto của chúng tôi, nhưng đối với một sự kiện cụ thể. Làm điều này với sự kiện 'Touch Up Inside' và chọn phương pháp updateTexto của chúng tôi:

Và theo cách này, chúng tôi đã có liên quan đến các điều khiển mà chúng tôi đã xác định với Trình tạo giao diện và các biến mà chúng tôi đã đặt trong bộ điều khiển. Chúng tôi đóng Trình tạo giao diện lưu mọi thứ và chúng tôi đi đến bước cuối cùng quay lại XCode.

Bước 5. Diễn biến mới nhất.

Trong XCode, chúng tôi mở HelloWorldViewController.my và chúng tôi đặt mã sau để lớp của chúng tôi trông giống như sau:

Nếu chúng ta quan sát kỹ, chúng ta chỉ cần đặt khối @synthesize và việc triển khai phương thức được khai báo trong giao diện .h, updateTexto. Bên dưới mã đó bạn sẽ có rất nhiều mã được bình luận.

Dòng @synthesize thực hiện một cái gì đó tương tự như tạo getter / setter (bộ truy cập / bộ đột biến) điển hình trong các ngôn ngữ OO (đóng gói). Chúng tôi cần chúng để bộ điều khiển tiếp cận nội dung, ví dụ, của hộp văn bản.

Phương thức updateTexto, như bạn có thể thấy, chỉ cần cập nhật văn bản của nhãn của chúng tôi với nội dung của trường văn bản. Chúng ta xong rồi.

Bây giờ, chúng ta chỉ cần thực hiện Build & Go, và bạn sẽ thấy rằng khi bạn nhập một chuỗi văn bản và nhấp vào nút, nội dung của nhãn sẽ được cập nhật. Trong bài viết tiếp theo, chúng tôi sẽ giới thiệu các cải tiến cho ứng dụng của chúng tôi.


Theo dõi chúng tôi trên Google Tin tức

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Peter dijo

    Hướng dẫn rất tốt, rất rõ ràng và đơn giản.

  2.   rubdotto.com dijo

    Chà, chắc là mình rất dưa vì nó không hợp với mình. Tôi đã nắm bắt giá trị trong một Chuỗi và nó lấy văn bản nhưng nó không gán nó cho nhãn, ít nhất là nó không vẽ nó, bởi vì tôi cố gắng xem label.text và nó cho tôi biết ngoài phạm vi ...

  3.   leo2279 dijo

    Tuyệt vời các hướng dẫn của bạn, nó thực sự giải thích rất tốt sự phát triển này cho iphone, tôi hy vọng bạn tiếp tục xuất bản thêm các hướng dẫn khác.

    liên quan

  4.   Mariano dijo

    Xin chào, tất cả đều tuyệt, nhưng nó không hoạt động. Để làm cho nó hoạt động, tôi phải liên kết chế độ xem của trình xây dựng giao diện với chế độ xem trong hình khối, như bạn dạy làm với trường văn bản và nhãn. Phần còn lại, cảm ơn bạn rất nhiều.