2013-01-12 34 views
3

在我的應用程序中,我有兩個屏幕 - 第一個顯示用戶配置文件,第二個 - 編輯配置文件信息。他們是相似的。我已經完成了第一個屏幕的xib文件。重用UI(xib文件)

在第二個屏幕上重複使用它的最佳方式是什麼?

回答

3

你應該封裝相關的元素作爲自定義視圖類。你可以通過用代碼而不是xib創建視圖來解決這個問題,我會推薦這個。

但是,如果你更喜歡使用xib,你可以創建一個模型,你想要重用的東西。然後在您的視圖控制器打電話像這樣的代碼:

UIView* aView = [UIView alloc] initWithFrame .....]; 
[[NSBundle mainBundle] loadNibNamed:@"MyReusableComponent" owner:aView options:nil]; 
UILabel* someLabel = aView.injectedLabel; //this is alive after loading the xib 
[self.view addSubView:aView]; 

當你創建你的廈門國際銀行,你需要將文件的所有者設置爲一類,將在制定者爲應對將要注入的屬性。 (例如你的新視圖類)。這樣你可以連接參考。

欲瞭解更多信息,請看蘋果公司從xib加載表格單元格的例子 - 這是相同的技術。加載xib並指定所有者時,它會將xib中的值注入到所有者中,在這種情況下是自定義視圖。

enter image description here

+1

+1代碼而不是nibs;我從來沒有發現筆尖在長期甚至中期都比傷害更好的情況。 – Simon

+3

筆尖是非常有用的,尤其是從長遠來看,但你必須知道在哪裏停止,以及如何正確地劃分它們之間的用戶界面。 –

+0

@valentin - 你是對的,如果這是你的偏好,他們當然可以正確地完成。 。 –

0

你可以使用UITextField秒(而不是UILabel是你可能已經在邏輯上用於顯示),您在外觀上的變化,以及開/關切換enabled。作爲一個小例子:

顯示

self.textField.borderStyle = UITextBorderStyleNone; 
self.textfield.enabled  = NO; 

編輯

self.textField.borderStyle = UITextBorderStyleBezel; 
self.textfield.enabled  = YES; 

你當然可以做更多的外表,不僅僅是這些基本知識。

-1

在Xcode中:轉到文件>重複。

然後命名重複廈門國際銀行類似「editProfile」這會給你的第一個廈門國際銀行的副本,你可以根據需要