Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS SDK

Langkah-langkah pertama dengan UIKit

by
Read Time:17 minsLanguages:
This post is part of a series called Learn iOS SDK Development From Scratch.
Exploring the Foundation Framework
Table View Basics

Indonesian (Bahasa Indonesia) translation by Fodal Fadul (you can also view the original English article)

UIKit adalah kerangka bahwa Anda akan menemukan diri Anda paling sering digunakan ketika mengembangkan aplikasi iOS. Itu mendefinisikan komponen inti aplikasi iOS, dari label dan tombol untuk meja dilihat dan pengontrol navigasi. Dalam artikel ini, tidak hanya akan kita mulai eksplorasi kita kerangka UIKit, kita juga akan mengeksplorasi internal proyek iOS dan blok bangunan dasar iOS aplikasi.


Apakah kerangka UIKit?

Sementara kerangka dasar mendefinisikan kelas, protokol dan fungsi untuk iOS dan OS X pembangunan, kerangka UIKit eksklusif diarahkan iOS pengembangan. Ini adalah setara dengan kerangka aplikasi Kit atau AppKit untuk OS X pembangunan.

Seperti Foundation, UIKit mendefinisikan kelas, protokol, fungsi, jenis data dan konstan. Ia juga menambahkan fungsionalitas tambahan untuk berbagai Yayasan kelas, seperti NSObject, NSString, dan NSValue melalui penggunaan Objective-C kategori.

Kategori Objective-C adalah cara mudah untuk menambahkan metode tambahan untuk yang sudah ada kelas tanpa perlu subclassing. Baca tutorial ini oleh Aaron Crabtree jika Anda ingin mempelajari lebih lanjut tentang tujuan-C kategori.

Bukan menjelajahi kelas kunci UIKit seperti yang kita lakukan untuk kerangka dasar, kita akan membuat dan perjalanan melalui proyek iOS baru dan mengeksplorasi kelas yang kita hadapi. Dengan mengambil pendekatan ini, itu akan dengan cepat menjadi jelas dalam konteks apa a kelas yang digunakan dan bagaimana masing-masing kelas cocok dalam skema lebih luas aplikasi iOS dan peran apa itu bermain.


Awal yang baru

Peluncuran Xcode dan membuat proyek baru dengan memilih New > proyek... dari Berkas menu. Di bagian iOS di sebelah kiri, pilih aplikasi kategori. Dari daftar template proyek, pilih template aplikasi pemandangan tunggal.

Satu aplikasi Lihat template berisi blok bangunan dasar iOS aplikasi dan karena itu tempat yang baik untuk memulai perjalanan kita.

Nama proyek UIKit dan masukkan pengidentifikasi nama organisasi. Masukkan awalan kelas, seperti yang dijelaskan sebelumnya dalam seri ini, dan mengatur perangkat untuk iPhone.

Memberitahu Xcode mana Anda ingin menyimpan proyek baru dan pastikan untuk menempatkan proyek dibawah kontrol versi dengan memeriksa kotak centang yang berlabel membuat repositori git pada Mac saya. Kembali artikel ini untuk informasi lebih lanjut tentang kontrol versi dan manfaatnya.


File dan folder

Kami telah belajar beberapa hal-hal baru sejak terakhir kali kami menciptakan sebuah proyek iOS dari awal jadi itu adalah ide yang baik untuk menjelajahi berbagai file dan folder dari proyek baru kami untuk melihat jika mereka membunyikan lonceng.

Di Navigator proyek, Anda akan melihat tiga folder akar dari proyek;

  • Produk
  • Kerangka kerja
  • folder dengan nama proyek Anda, UIKit dalam contoh ini
  • folder nama yang berakhir dengan tes, UIKitTests dalam contoh ini

Mari kita lihat isi dari masing-masing folder ini.

Produk

Folder produk saat ini berisi dua item. Item pertama menyandang nama proyek kami dan memiliki perpanjangan. app. Nama item kedua berakhir dalam tes dan memiliki ekstensi dari .xctest. Saya tidak akan menutupi unit test dalam seri ini, jadi Anda dapat mengabaikan item kedua untuk sekarang.

Produk folder berisi aplikasi — atau aplikasi-dibuat oleh proyek setelah kompilasi kode sumber.

Pernahkah Anda memperhatikan bahwa UIKit.app adalah disorot dalam warna merah? Setiap kali Xcode tidak dapat menemukan file, ini menyoroti file dalam merah. Karena proyek belum dikompilasi, Xcode belum dibuat produk.

Kerangka kerja

Folder kerangka berisi kerangka kerja proyek Anda terhubung terhadap. Dalam artikel sebelumnya, proyek kami hanya dikaitkan terhadap kerangka dasar. Proyek ini, namun, berdasarkan template yang aplikasi iOS dan karenanya terkait terhadap empat kerangka, Yayasan, UIKit, grafis inti, dan XCTest.

Anda mungkin ingat kerangka grafis inti dari sebelumnya dalam seri ini. Kerangka berisi antarmuka untuk API gambar 2D (kuarsa). Kerangka XCTest berkaitan dengan unit pengujian, yang saya tidak akan menutupi dalam seri ini.

Ada satu lokasi lain di proyek kami yang menentukan kerangka yang proyek ini dikaitkan terhadap. Pilih proyek Anda dalam proyek Navigator, pilih item hanya di bagian target di sebelah kiri, dan buka tab fase membangun di atas.

Dengan membuka Link biner dengan perpustakaan laci, Anda disajikan dengan daftar kerangka kerja yang kita lihat dalam folder kerangka kerja yang sama. Menghubungkan proyek kami terhadap kerangka sistem iOS lain semudah mengklik tombol Tambah di bagian bawah daftar dan memilih kerangka dari daftar.

Folder proyek

Sebagian besar waktu Anda akan dihabiskan dalam folder proyek, yang saat ini berisi file enam dan satu folder bernama mendukung file. Mari kita mulai dengan melihat isi dari folder file mendukung.

  • <PROJECT>-Info.plist:</PROJECT> File ini, sering disebut sebagai "info-dot-plist" file proyek, adalah sebuah daftar properti yang berisi berbagai pengaturan konfigurasi. Sebagian besar pengaturan ini dapat juga dimodifikasi oleh memilih proyek dalam proyek Navigator, memilih target dalam daftar sasaran dan membuka tab Umum, kemampuan, dan Info.
  • InfoPlist.strings: Jika Info.plist mengandung nilai-nilai yang perlu dilokalisasi, maka Anda dapat melakukannya dengan menetapkan mereka dalam InfoPlist.strings. Lokalisasi aplikasi adalah sesuatu yang kita tidak akan membahas dalam seri ini.
  • Main.m: File ini harus akrab dengan sekarang. Ketika membuat aplikasi iOS, namun, Anda akan jarang memodifikasi isi dari main.m. Ini berisi fungsi utama aplikasi, yang mana semua keajaiban dimulai. Meskipun kita tidak akan memodifikasi main.m, sangat penting untuk aplikasi iOS Anda.
  • <PROJECT>-Prefix.pch:</PROJECT> Ini adalah proyek Installation header file, yang kami sudah temui sebelumnya dalam seri ini. Seperti namanya, file header yang tercantum dalam file header terkompilasi yang dikompilasi oleh Xcode, yang membawa turun waktu yang dibutuhkan untuk mengkompilasi proyek Anda. Kerangka dasar dan UIKit tidak mengubah sangat sering sehingga tidak perlu untuk mengkompilasi mereka setiap kali Anda mengkompilasi proyek Anda. Selain precompiling file header yang tercantum dalam file header Installation, setiap berkas sumber dalam proyek Anda diawali dengan file header terdaftar.

Komponen aplikasi

Sekarang bahwa kita tahu apa yang berbeda file dan folder pada proyek kami adalah untuk, saatnya untuk menjelajahi berbagai komponen aplikasi iOS. Saat kami melanjutkan perjalanan kami, kami akan menemukan beberapa kelas yang berasal dari UIKit. Masing-masing kelas milik UIKit framework dimulai dengan awalan kelas UI. Ingat bahwa Yayasan kelas diawali dengan NS.


Pola Model-View-Controller

Sebelum kita mulai mengeksplorasi kerangka UIKit, saya ingin berbicara tentang pola Model-View-Controller (MVC). Pola MVC adalah salah satu pola yang paling luas dalam pemrograman berorientasi objek. Ini mempromosikan usabilitas kode dan memiliki hubungan dekat dengan konsep pemisahan tanggung jawab atau masalah. Salah satu tujuan utama dari pola MVC adalah pemisahan logika bisnis aplikasi dari lapisan presentasi.

Kakao Touch merangkul pola MVC dan oleh karena itu penting untuk memahami apa itu dan cara kerjanya. Dengan kata lain, dengan memahami pola MVC, akan lebih mudah untuk memahami bagaimana berbagai komponen aplikasi iOS bekerja bersama-sama.

Pada pola MVC, model yang mengatur logika bisnis aplikasi. Berinteraksi dengan database, misalnya, adalah tanggung jawab model. Tampilan menyajikan data yang dikelola oleh model untuk pengguna. Lihat mengelola antarmuka pengguna dan input pengguna.

Controller adalah lem antara model dan view. Sementara model dan pemandangan tidak tahu tentang keberadaan satu sama lain, controller tahu tentang model dan view.

Karena controller tahu tentang model dan pemandangan, hal ini sering bagian yang paling tidak dapat digunakan kembali dari aplikasi. Kurang objek tahu tentang lingkungan dan benda-benda yang berinteraksi dengan, semakin tinggi usabilitas yang akan di masa depan proyek-proyek.


UIApplication

Meskipun kelas UIApplication adalah komponen kunci dari setiap aplikasi iOS, Anda tidak akan berinteraksi dengan itu sangat sering dan Anda akan jarang, jika pernah, merasa perlu untuk subclass UIApplication.

Ketika meluncurkan aplikasi, tunggal kelas ini dibuat. Apakah Anda ingat apa adalah sebuah objek tunggal? Itu berarti bahwa hanya satu objek instance kelas UIApplication dibuat selama aplikasi hidup.

Contoh UIApplication adalah entry point untuk interaksi pengguna dan berita-berita acara ke objek-objek tepat sasaran. Arti sesungguhnya dari ini akan menjadi jelas dalam beberapa menit ketika kita mengambil melihat tampilan controller.

Dalam kebanyakan aplikasi iOS, contoh UIApplication memiliki sebuah objek delegasi yang terkait dengannya. Setiap kali Anda membuat sebuah proyek iOS yang menggunakan salah satu template yang disediakan, Xcode akan membuat kelas delegasi aplikasi untuk Anda. Lihatlah nama file sumber dalam folder proyek proyek Navigator. Pertama dua file yang bernama TSPAppDelegate.

Contoh kelas ini adalah delegasi dari UIApplication singleton. Sebelum mengambil melihat lebih dekat kelas TSPAppDelegate, kita perlu memahami apa pola delegasi.

Ole Begemann menulis artikel yang sangat baik tentang urutan peluncuran aplikasi iOS khas. Dalam artikel ini, ia berbicara tentang berbagai komponen terlibat dan peran mereka selama aplikasi meluncurkan urutan. Saya sangat merekomendasikan membaca artikel ini jika Anda ingin mendapatkan pemahaman yang lebih baik dari peran UIApplication kelas serta fungsi misterius main() di main.m.


Pola delegasi

Pola delegasi digunakan secara ekstensif dalam kakao dan kakao menyentuh. Dalam artikel berikutnya dari seri ini, di mana kita mengeksplorasi seluk-beluk tampilan tabel, Anda akan menemukan bahwa tabel pemandangan sangat bergantung pada delegasi (dan sumber data) pola.

Seperti pola MVC, delegasi umum dalam pemrograman berorientasi objek. Pola delegasi kakao menyentuh, bagaimanapun, sedikit berbeda, karena itu membuat menggunakan protokol delegasi untuk mendefinisikan perilaku objek delegasi.

Mari kita melompat ke depan dan Lihatlah pemandangan meja. Jika Anda telah menghabiskan jumlah waktu dengan iPhone atau iPad, maka kelas UITableView harus akrab bagi Anda. Hal ini menyajikan daftar ordered data kepada pengguna dan melakukan pekerjaan ini sangat baik.

Bagaimana tampilan tabel yang tahu apa yang harus dilakukan ketika baris mengetuk? Apakah perilaku ini termasuk dalam kelas UITableView? Tentu saja tidak, karena perilaku ini bervariasi dari satu aplikasi ke aplikasi. Jika kita termasuk perilaku ini dalam kelas UITableView, itu tidak akan sangat dapat digunakan kembali.

Tampilan tabel dia tanggung-jawab ini ke objek delegasi. Menempatkan berbeda, itu mendelegasikan tugas ini ke objek lain, sebuah delegasi objek. Luangkan waktu untuk memeriksa referensi kelas kelas UITableView. Ini memiliki dua sifat yang bernama dataSource dan delegasi. Delegasi diberitahu oleh tampilan tabel setiap kali pengguna keran berturut-turut. Ini adalah tanggung jawab objek delegasi untuk menanggapi tekan pengguna.

Sumber data tampilan tabel serupa dalam perilaku. Perbedaan utama adalah bahwa tampilan tabel meminta objek sumber data untuk sesuatu, data yang dibutuhkan untuk menampilkan.

Delegasi dan data objek sumber, seperti mendelegasikan tampilan tabel dan benda dataSource, yang hampir selalu kustom kelas, kelas yang Anda buat, karena pelaksanaannya adalah aplikasi tertentu.

Sebelum kita melihat kelas TSPAppDelegate, penting untuk memahami bahwa sebuah objek delegasi sesuai dengan protokol delegasi. Dalam artikel sebelumnya, kita telah Pelajari tentang protokol dalam tujuan-C dan bagaimana mereka menentukan perilaku dengan mendefinisikan daftar metode untuk nya pengadopsi untuk menerapkan.


Delegasi aplikasi

Sekarang bahwa kita tahu apa delegasi, saatnya untuk menjelajahi TSPAppDelegate kelas yang Xcode ciptakan untuk kita. Pada peluncuran aplikasi, aplikasi membuat instance kelas TSPAppDelegate. Anda biasanya tidak perlu secara eksplisit instantiate sebuah aplikasi delegasi objek.

Buka file header kelas TSPAppDelegate (TSPAppDelegate.h) untuk memeriksa isinya. Jika kita mengabaikan komentar di bagian atas, baris pertama impor file header kerangka UIKit sehingga kita dapat bekerja dengan kelas dan protokol.

Baris berikutnya harus akrab. Ini adalah awal dari antarmuka kelas TSPAppDelegate seperti yang ditunjukkan oleh direktif @interface. Hal ini menentukan nama kelas dan kelas superclass, UIResponder.

Antara kurung sudut adalah protokol kelas yang sesuai. Kelas TSPAppDelegate sesuai dengan suatu protokol, protokol UIApplicationDelegate.

Baris berikutnya adalah sebuah deklarasi properti, yang harus melihat akrab. Properti, jendela, adalah instance dari UIWindow, yang merupakan sebuah subclass dari UIView. Kata-kata antara tanda kurung, kuat dan nonatomic, adalah atribut opsional properti yang menentukan semantik penyimpanan dan perilaku properti. Anda dapat mengabaikan mereka sekarang.

Bagian yang paling menarik dari antarmuka kelas TSPAppDelegate adalah protokol UIApplicationDelegate. Lihatlah referensi dari protokol UIApplicationDelegate untuk daftar lengkap dari metode-metode yang mendefinisikan protokol.

Protokol mendefinisikan puluhan metode dan saya mendorong Anda untuk menjelajahi beberapa dari mereka untuk mendapatkan ide dari protokol kemampuan. Metode yang paling menarik bagi kita saat ini adalah aplikasi: didFinishLaunchingWithOptions:.

Bila contoh UIApplication telah selesai mempersiapkan aplikasi untuk peluncuran, itu akan memberitahu delegasi, kami TSPAppDelegate contoh, bahwa aplikasi akan selesai meluncurkan — tapi itu belum belum.

Mengapa Apakah itu memberitahu aplikasi delegasi acara ini? Contoh UIApplication memberitahu para delegasi acara ini sehingga memiliki kesempatan untuk mempersiapkan peluncuran aplikasi. Kepala ke file implementasi TSPAppDelegate untuk melihat apa yang saya maksud. Metode pertama dalam file implementasi adalah aplikasi: didFinishLaunchingWithOptions: dan lebih atau kurang akan terlihat seperti yang disisipkan di bawah ini.

Aplikasi: didFinishLaunchingWithOptions: metode memberikan referensi untuk contoh UIApplication dan Kamus dengan pilihan, yang tidak menarik bagi kami pada saat ini. Implementasi metode ini cukup sederhana. Semua hal ini kembali ya untuk memberitahu UIApplication contoh aplikasi yang siap untuk memulai.

Jalan cerita

Xcode proyek berisi file menarik yang lain, Main.storyboard. Storyboard mendefinisikan bagaimana user interface aplikasi kita akan terlihat seperti. Secara default, storyboard dinamai Main.storyboard. Pilih storyboard untuk membukanya.

Storyboard saat ini berisi satu pandangan di tengah ruang kerja. Di sebelah kanan Navigator proyek Anda dapat melihat daftar item, yang berupa objek yang Anda lihat dalam tampilan. Item atas nama View Controller adegan, yang berisi satu anak barang berlabel View Controller.

Objek View Controller yang juga memiliki sejumlah item anak, tetapi ada satu yang menarik khusus bagi kita, objek yang bernama View. Ingat diskusi kita tentang pola MVC. Di sini Anda dapat melihat pola MVC dalam tindakan. Model hilang pada saat ini, tapi kami memiliki pandangan, lihat objek dan controller, objek View Controller.

Ketika meluncurkan aplikasi kami, storyboard digunakan untuk membuat aplikasi antarmuka pengguna. Lihat controller secara otomatis dibuat dan begitu juga tampilan Lihat controller. Objek pemandangan di storyboard dikelola oleh tampilan controller.

Tunggu sebentar. Di mana menemukan kelas controller lihat di storyboard? Bagaimana cara mengubah perilaku untuk menciptakan sebuah aplikasi yang unik? Pilih objek View Controller di sebelah kiri di storyboard dan buka Inspektur identitas di sebelah kanan.

Inspektur identitas memberitahu Anda segala sesuatu yang perlu Anda ketahui. Di bagian atas, di bagian kelas kustom, Anda dapat melihat nama kelas controller pemandangan, TSPViewController. Pernahkah Anda memperhatikan bahwa dua file kami belum membicarakan belum memiliki nama yang sama? Kita akan menjelajahi file ini dalam beberapa saat.

Lihat controller dibuat bagi kita, karena controller lihat awal dari storyboard. Hal ini ditunjukkan dalam storyboard dengan panah menunjuk ke storyboard.

UIViewController

Jika Anda membuka TSPViewController.h, Anda akan melihat bahwa kelas TSPViewController adalah sebuah subclass dari UIViewController. Seperti TSPAppDelegate, UIViewController kelas adalah sebuah subclass dari UIResponder. Lihat controller, atau subclass daripadanya, jatuh dalam kategori controller pola MVC. Seperti namanya, mereka mengontrol tampilan, instance kelas UIView, yang jatuh dalam kategori Lihat pola MVC.

Kontroler Lihat mengelola pandangan dan pandangan yang subviews seperti yang kita akan lihat nanti. Untuk melakukan ini, lihat controller perlu tahu tentang pandangan. Dengan kata lain, perlu memiliki referensi ke tampilan.

Lihat controller di storyboard memiliki referensi ke tampilan. Anda dapat memverifikasi ini dengan memilih tampilan controller di storyboard dan membuka koneksi Inspektur di sebelah kanan.

Di Inspektur koneksi, Anda akan melihat bagian yang bernama outlet. Istilah outlet adalah sebuah kata mewah untuk sebuah properti, yang Anda dapat menetapkan di storyboard. Arahkan dengan mouse Anda ke outlet bernama pemandangan dan mengamati bagaimana tampilan di ruang kerja disorot. Itu adalah hubungan antara tampilan controller dan pemandangan.


UIView

Meskipun aplikasi Anda dapat memiliki hanya satu contoh dari UIWindow, dapat memiliki banyak pemandangan. Kelas UIView merupakan komponen penting dari kerangka UIKit, karena banyak kelas mewarisi dari itu — baik secara langsung maupun tidak langsung.

Kembali Main.storyboard dengan memilih dan mengambil melihat Perpustakaan objek di bagian bawah Inspektur.

Jelajahi Perpustakaan objek dan menyeret label dan tombol ke tampilan di ruang kerja. Tidak peduli di mana posisi mereka dalam tampilan selama mereka berada dalam tampilan Lihat controller.

Anda akan menyadari bahwa dua objek yang baru telah ditambahkan ke bagian objek di sebelah kiri. Label (UILabel) dan tombol (UIButton) mewarisi dari UIView. Apakah Anda memperhatikan bahwa Label dan tombol objek sedikit indentasi dibandingkan dengan objek View? Ini menunjukkan bahwa objek yang Label dan tombol subviews objek pemandangan. Pemandangan yang dapat memiliki satu atau lebih subviews yang dikelola.

Seperti yang saya sebutkan sebelumnya, kelas UIView adalah komponen penting dari UIKit. Lihat mengelola wilayah persegi panjang atau bingkai pada layar. Mengelola isi dari daerah, subviews, dan interaksi dengan pandangan yang isi. Kelas UIView adalah sebuah subclass dari UIResponder. Anda akan belajar lebih tentang dilihat selama seri ini.


Outlet

Mari kita lihat sebuah contoh untuk menggambarkan hubungan antara storyboard, pandangan ini berisi dan lihat controller. Tiga komponen penting dan saya ingin memastikan bahwa Anda memahami bagaimana mereka bekerja bersama.

Beberapa hari lalu, Anda menambahkan label dan tombol ke tampilan Lihat controller. Bagaimana tampilan controller tahu tentang benda-benda ini? Saat ini, mereka tidak muncul dalam Inspektur koneksi, tetapi kita dapat mengubah bahwa dengan memberitahu controller pandangan tentang mereka.

Buka tampilan controller header file (TPSViewController.h) dan menambahkan sebuah properti untuk label dan tombol.

Dengan menambahkan kata kunci IBOutlet untuk Deklarasi properti, properti akan muncul di Inspektur koneksi di storyboard dan itulah apa yang kita inginkan.

Kembali ke storyboard, pilih View Controller obyek dalam adegan Controller View, dan buka Inspektur sambungan di sebelah kanan. Sifat-sifat baru sekarang terdaftar dalam daftar outlet. Namun, tampilan controller namun belum membuat hubungan antara sifat-sifat baru dan benda-benda di storyboard.

Hal ini mudah untuk memperbaiki. Tarik dari lingkaran kosong di sebelah kiri outlet myLabel ke label dalam ruang kerja. Ini akan membuat sambungan tersebut sangat penting agar tampilan controller tahu tentang label. Melakukan hal yang sama untuk tombol.


Meskipun kita dapat mengubah teks label dalam storyboard, mari kita melakukan ini di lihat controller untuk menggambarkan bahwa tampilan controller memiliki akses ke label dan tombol storyboard.

Buka tampilan controller implementasi file (TPSViewController.m) dan mencari metode viewDidLoad. Mengubah metode viewDidLoad untuk mencerminkan pelaksanaan di bawah ini. Komentar telah diabaikan untuk kejelasan.

Kami dapat mengirim pesan ke label properti dengan meminta controller pemandangan, diri, untuk properti myLabel. Dengan mengirimkan myLabel properti pesan dari setText: dan melewati string literal, kami memperbarui label teks.

Catatan setText bahwa: aksesor atau setter. Meskipun dimungkinkan untuk menggunakan notasi titik Objective-C (Lihat di bawah), saya telah menggunakan sintaks yang lebih tradisional seperti itu lebih baik menunjukkan kepada Anda apa yang sebenarnya terjadi.

Menjalankan aplikasi dalam iOS Simulator dengan mengklik tombol Jalankan di kiri atas dan melihat bahwa label teks memang diperbarui.


Tindakan

Kami telah menjelajahi banyak hal-hal baru dalam artikel ini. Saya ingin mengakhiri angsuran ini dengan berbicara tentang tindakan. Seperti outlet, tindakan yang tidak lebih dari metode yang dapat Anda lihat di jalan cerita.

Mari kita lihat bagaimana ini bekerja. Buka tampilan controller header file (TPSViewController.h) dan menambahkan metode pernyataan di suatu tempat di lihat controller interface blok.

Jangan bingung dengan kata kunci IBAction. IBAction identik untuk void, yang berarti bahwa metode mengembalikan nilai. Jika kita mengambil melihat lebih dekat pada Deklarasi metode, kita dapat melihat bahwa dibutuhkan satu argumen jenis id, referensi ke objek Objective-C.

Sebagai argumen namanya, argumen dari metode atau tindakan adalah object yang mengirim pesan ke tampilan controller. Aku akan menjelaskan hal ini secara lebih rinci dalam hanya sedikit.

Meninjau kembali storyboard, pilih View Controller obyek dalam adegan Controller View, dan membuka koneksi Inspektur. Bagian baru telah muncul di Inspektur koneksi bernama menerima tindakan dan tindakan kami hanya menambahkan terdaftar dalam bagian ini.

Tarik dari lingkaran kosong di sebelah kiri dari tindakan ke tombol di ruang kerja. Jendela kecil dengan daftar pilihan akan muncul. Daftar berisi semua peristiwa mungkin bahwa tombol dapat merespon. Salah satu yang kepentingan kita adalah Touch Up di dalam. Acara ini dipicu ketika pengguna menyentuh tombol dan mengangkat jari mereka sementara masih dalam tombol.

Membangun dan menjalankan aplikasi Anda sekali lagi dan ketuk tombol. Melakukan kecelakaan aplikasi untuk Anda juga? Bagaimana ini terjadi? Ketika Anda mengetuk tombol, mengirim pesan changeColor: ke tampilan controller. Meskipun tampilan controller menyatakan changeColor: metode, itu tidak melaksanakan metode ini belum.

Setiap kali pesan dikirim ke objek yang tidak melaksanakan metode yang sesuai, exception dimunculkan dan aplikasi crash jika pengecualian tidak tertangkap. Anda dapat memverifikasi ini dengan menjalankan aplikasi sekali lagi, menekan tombol, dan memeriksa output di jendela konsol.

Untuk memperbaiki hal ini, kita perlu untuk mengimplementasikan changeColor: metode. Buka tampilan controller implementasi file (TPSViewController.m) dan menambahkan implementasi metode berikut di suatu tempat di blok implementasi.

Pelaksanaan changeColor: metode identik dengan yang kami digunakan sebelumnya dalam seri ini. Namun, saya telah menambahkan dua panggilan NSLog tambahan untuk pelaksanaannya untuk menunjukkan bahwa pengirim pesan memang tombol yang kami menambahkan storyboard.

Metode itu sendiri cukup sederhana. Kami menghasilkan tiga acak bilangan bulat antara 0 dan 255, melewati nilai-nilai ini ke colorWithRed:green:blue:alpha: untuk menghasilkan warna acak, dan memperbarui warna latar belakang pemandangan pemandangan controller dengan warna yang dihasilkan secara acak.

Catatan self.view bahwa referensi pandangan bahwa tampilan controller mengatur dan bahwa kita lihat sebelumnya dalam storyboard.

Membangun dan menjalankan aplikasi Anda sekali lagi, ketuk tombol, dan jangan lupa untuk memeriksa output di jendela konsol Xcode's. Anda akan melihat bahwa pengirim adalah instance dari UIButton dan superclass yang UIControl.


Kesimpulan

Dalam artikel ini, kami telah menjelajahi beberapa kelas kerangka UIKit dan kami mengambil dekat melihat berbagai komponen aplikasi iOS. Kita akan menjelajahi dan bekerja dengan kerangka UIKit secara lebih rinci dalam sisa seri ini.

Jika Anda tidak sepenuhnya memahami berbagai konsep dan pola, maka saya yakin bahwa Anda akan sebagai kemajuan serial. Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan tentang artikel ini.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.