fb_license

技術標籤

@selector (1) 初使化區塊 (1) 物件 (1) 物件導向 (2) 型別 (4) 封裝 (1) 流程控制 (1) 陣列 (3) 推論型別 (2) 實機測試 (1) 蓋索林(gasolin) (1) 模組 (1) 憑證 (1) 轉型 (1) 羅康鴻 (121) 類別 (1) 變數 (5) Accelerometer (1) ActiveRecord (1) Activity (1) AFNetworking (1) alloc (1) Android (3) Animation (1) App (1) App ID (1) APP上傳 (1) ASP.NET (1) AVAudioPlayer (1) block (1) C# (2) class (1) CLLocationManager (1) CLLocationManagerDelegate (1) CMMotionManager (4) Controller (1) delegate (1) DELETE語法 (1) Device Motion資料 (1) Dialog (1) DropDownList (1) dynamic language (2) Facebook SDK (9) FBRequest (5) FBRequestConnection (2) FMDB (1) Gesture Recognizers (6) GROUP BY (2) Gyro (1) HAVING (1) IBAction (1) IBOutlet (1) id (3) inheritance (1) init (1) Insert (1) instance variable (1) Interface Builder (1) iOS (70) iOS idea (7) iOS Introduction (1) Layout (1) Magnetometer (1) Menu (2) Method (2) MKMapView (1) MKPointAnnotation (1) MS SQL (5) Nil (1) NSArray (1) NSDictionary (1) NSError (1) NSFileManager & .plist (1) NSMutableArray (1) NSMutableDictionary (1) NSNotificationCenter (1) NULL (1) object (2) Objective-C (16) Objective-C idea (1) ORDER BY (1) Parameter (1) property (1) protocol (2) Provisioning (1) Proximate Sensor (1) Q and A (2) R類別 (1) Rails (9) RESTful SOA (9) Ruby (8) Scene (1) SEELECT (1) Segue (2) SEL (1) SELECT語法 (1) Shake (1) Simulator (1) SOA (8) SQL (6) SQL Server (5) SQL函數 (1) SQL彙總函數 SQL (1) SQLite (1) Storyboard (1) Style (1) Swift (1) Table (1) target & action (1) Theme (1) Toast (1) TRUNCATE TABLE語法 (1) UIActionSheet (1) UIActionSheetDelegate (1) UIActivityIndicatorView (1) UIAlertView (1) UIBarButtonItem (1) UIButton (1) UICollectionView (1) UICollectionViewDataSource (1) UIControl (9) UIDatePicker (1) UIImage (1) UIImagePickerController (2) UIImagePickerControllerDelegate (2) UIImageView (1) UILabel (1) UILongPressGestureRecognizer (1) UINavigationController (2) UIPanGestureRecognizer (1) UIPinchGestureRecognizer (1) UIProgressView (1) UIResponder (1) UIRotationGestureRecognizer (1) UISegmentedControl (1) UISlider (1) UIStepper (1) UISwipeGestureRecognizer (1) UISwitch (1) UITabBarController (1) UITableView (1) UITableViewDataSource (1) UITapGestureRecognizer (1) UITextField (1) UITextFieldDelegate (1) UITextView (2) UITextViewDelegate (1) UIToolBar (1) UIView (8) UIWebView (1) UPDATE語法 (1) var (2) VB.NET (7) View (4) WHERE子句 (1) XML (1)

2013/05/26

[iOS] 尤如主機板般的控制 - Controller


idea...


使用"Interface Builder"建立的畫面,其中有許多控制元件在其中,
但…,要怎麼才可透過程式來控制畫面上的控制元件呢?!

我是View,所有的控制元件
繼承自View,我以View
的身份代表所有控制元件。
我是Interface Builder,
透過我,你可以透過視覺化的方式,
將不同View的控制元件排入畫面中。
我是iOS工程師,
雖然我透過Interface Builder
將不同View的控制元件排入畫面中,
但...我要怎麼控制到這些View控制元件呢?!
 我想要用程式存取並控制它們!

iOS工程師,我是Controller,
我可以幫你控制View控制元件
但你必須客製化一個自已的Controller,
把控制的程式碼寫在其中,
然後更換預設的Controller,
這樣你就可以控制那些View控制元件了 。

我就像電腦的主機板,
View控制元件就像週邊設備,
你可以客製一個自已的主機板,
來隨意的控制View控制元件




第1步:建立一個名為"Controller"的"Single View Application"專案。

第2步:建立自已的Controller,名為"MyViewController"。


  • 2.1 於"Controller"專案上按右鍵,選"New File..."

   

  • 2.2 選取"Objective-C Class",並選"Next"。

  • 2.3 在Class欄輸入"MyViewController",在SubClass Of欄輸入"UIViewController",以建立一個繼承自"UIViewController"的自訂類別"MyViewController",接著按下"Next"

  • 2.4 將著選取"Create"建立類別



第3步:為"Interface Builder"掛上自訂的"MyViewController",選取"MainStoryboard.storyboard",並在選取中間"Interface Builder"下方第1個代表Controller的按鈕,並於右方Class欄位填入自訂類別的名稱"MyViewController",


第4步:查看一下"Interface Builder"下的結畫面排版結構,找出最底層的View。點選中間"Interface Builder"左下方有個向右的鍵頭,選取後即會展開下圖左邊的結構樹,其中您會發現,"My View Controller"下會有一個名為"View"的View控制元件,這個"View"即是最底層的View控制元件。而"My View Controller"即是您自訂的Controller,只是其名稱以各單字分開的方式呈現。




第5步:以程式方式將底層的"View"控制元件的顏色變更為藍色
  • 5.1 選取"MyViewController.m"


  • 5.2 於viewDidLoad()函式中加上變更"View"控制元件的顏色為藍色的程式

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self.view setBackgroundColor:[UIColor blueColor]]; }


第6步:執行,您會發現畫面真的透過程式變成藍色了




檔案連結:Controller.zip





哈哈,我是一個Button按鈕,我住在底層View控制元件之上,即便你有自訂的"MyViewController"你也控制不到我!!!