2014-04-15 33 views
0

以編程方式創建UIButton,但它需要鏈接的頁面將需要成爲UINavigationController的根控制器視圖。當點擊一個以編程方式創建的UIButton時,是否可以推送到可在界面構建器中編輯的控制器?

這個頁面在界面生成器而不是代碼中更容易創建。當點擊按鈕時,它需要繼續到可以在界面構建器中編輯的另一個控制器/視圖。

可能或不可能?

如果可能我該怎麼做?我覺得我會經常遇到這個問題。

回答

1

當然這是可能的:

創建按鈕:

UIButton *bottonOne = [[UIButton alloc]initWithFrame:CGRectMake(10, 15, 65, 12)]; 

設定它與一個標題/圖片,因爲你需要。一旦你已經做到了做到這一點:

[buttonOne addTarget:self action:@selector(buttonOnepressed) forControlEvents:UIControlEventTouchUpInside]; 

然後在同一個類中創建一個名爲buttonOnepressed

-(void)buttonOnePressed 
{ 
    //preform the steps needed for your segue method and anything else you want to do when the  button has been tapped 
} 

編輯

方法閱讀您的意見後 - 你想有一個按鈕,你」在代碼中創建,在沒有手動調用segue的情況下執行segue(編寫實際顯示新屏幕的代碼),並且希望它的行爲與在IB中執行拖放操作相同。如果是這樣的話 - 簡單的答案很簡單,不。如果您在代碼中創建按鈕,則其所有操作都需要在代碼中完成。

編輯2

試試這個:

在IB創建這樣一個「通用」賽格瑞:

從源視圖控制器按住Ctrl鍵到你想要做其他視圖到點擊按鈕時。您可以使用場景底部的視圖控制器對象來執行此操作。

給segue一個標識符。

然後用[自performSegueWithIdentifier @ 「您的標識符」];在您的按鈕抽頭方法來執行SEGUE

+0

我已經這樣做了,但我想知道如何使用在界面構建器中創建的控制器。我想編輯按鈕按鈕的視圖,但是在界面構建器中而不是在代碼中。 – LondonGuy

+0

所以當你點擊按鈕時 - 你想在IB中創建一個viewController來顯示在屏幕上?你想不用手動調用segue來將視圖控制器推到屏幕上,是否正確? – Tander

+0

所以,你希望你能夠從視圖本身添加標籤,按鈕等到你的視圖控制器? –

2

你可以這樣做:

按鈕創建:

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 25, 25)]; 
[btn addTarget:self action:@selector(btnMethod:) forControlEvents:UIControlEventTouchUpInside]; 

按鈕方法:

- (void)btnMethod:(UIButton *)sender 
{ 
     [self performSegueWithIdentifier:@"MySegueIdentifier" sender:sender]; 
} 
相關問題