2011-08-14 196 views
0

我到目前爲止只有Interface Builder的佈局IOS改變按鈕背景點擊

我不清楚的語法來引用所有這些項目從佈局

我知道IBOutlet必須是在某個地方使用,但我需要更多的手持這個目標C在做什麼。我讀過的任何內容都告訴我爲什麼某些聲明以+開頭,其他聲明以 -

我想要做的是在佈局中單擊按鈕,彈出一個模式視圖並更改整個佈局的背景。

所以第一步是引用我在筆尖中做出的所有這些項目。幫幫我? (或發佈一個鏈接到更直觀的教程,你知道)

回答

1

所以你可能想爲你的背景視圖創建一個IBOutlet。也許這是一個UIImageView,您可以根據用戶在模式視圖中選擇的內容來設置它的圖像屬性。對於這一點,你就只需要聲明你有UIImageView的在IB文件

UIImageView *imageView; 

,然後宣佈它作爲一個屬性

@property (nonatomic,retain)IBOutlet UIImageView *imageView; 

和合成它在你的.m文件

@synthesize imageView; 

如果您不使用ARC,請不要忘記發佈它。

然後,你可以打開界面生成器,如果你點擊你的視圖控制器文件的所有者,並轉到連接檢查器,你會看到有一個新的連接imageView。只需將該連接拖到IB文件中的UIImageView即可。你現在在你的代碼中有一個引用,它連接到IB的UIImageView。

,讓您通過鍵入類似

self.imageView.image = [UIImage imageNamed:theNameTheUserJustPicked]; 

爲了獲取模式視圖設置在代碼中的UIImageView,你需要一個IBAction爲觸發代碼中的方法,從而宣告一個這樣的在你的主要筆尖的.h文件中。

- (IBAction)displayViewBackgroundChooser; 

然後在你的.m文件中定義它。

- (IBAction)displayViewBackgroundChooser { 
    //present your new view on screen here 
} 

然後返回到界面生成器並再次單擊文件的所有者。你應該在連接檢查器中看到它,然後你可以將它連接到一個按鈕,例如,這將觸發該方法。

希望這有助於清楚IBOutlets和IBActions上的一些事情。

+0

我得到的背景來改變,但我不能讓我的另一個視圖彈出,從新的所需視圖的筆尖點擊和拖動不連接到我的主視圖控制器中的任何東西 – CQM

+0

你不想連接任何東西到你的新的想要的筆尖,你想要連接到你的主要筆尖的東西,這將觸發你的代碼中的方法在屏幕上呈現新的筆尖。你需要在新的筆尖上做的唯一事情就是解散它,並將選定的信息傳遞迴主筆尖。 – Jamie

+0

'//在屏幕上顯示你的新視圖'我如何讓新視圖出現,我嘗試'self.displayViewBackgroundChooser;'這應該初始化。我看不到我的按鈕上的IBAction如何引用此視圖 – CQM

1

您可以使您在IB創建的UI元素與您的代碼通過IBOutletsIBActions手段進行交互。在你的情況下,我會將一個動作關聯到該按鈕,以便在按鈕被點擊時觸發;該操作將打開一個模式視圖,您可以在相關控制器的viewDidLoad方法中更改該視圖的背景。

Here您可以找到關於添加插座的視頻教程。和here一樣,關於行動。

關於您對+和 - 的疑問,-標識了在類中定義的常規方法; +定義了一個類方法,即可以直接調用該類的方法,而不必首先實例化它。查看S.O. article瞭解更多信息。