以編程方式創建UIButton,但它需要鏈接的頁面將需要成爲UINavigationController的根控制器視圖。當點擊一個以編程方式創建的UIButton時,是否可以推送到可在界面構建器中編輯的控制器?
這個頁面在界面生成器而不是代碼中更容易創建。當點擊按鈕時,它需要繼續到可以在界面構建器中編輯的另一個控制器/視圖。
可能或不可能?
如果可能我該怎麼做?我覺得我會經常遇到這個問題。
以編程方式創建UIButton,但它需要鏈接的頁面將需要成爲UINavigationController的根控制器視圖。當點擊一個以編程方式創建的UIButton時,是否可以推送到可在界面構建器中編輯的控制器?
這個頁面在界面生成器而不是代碼中更容易創建。當點擊按鈕時,它需要繼續到可以在界面構建器中編輯的另一個控制器/視圖。
可能或不可能?
如果可能我該怎麼做?我覺得我會經常遇到這個問題。
當然這是可能的:
創建按鈕:
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
你可以這樣做:
按鈕創建:
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];
}
我已經這樣做了,但我想知道如何使用在界面構建器中創建的控制器。我想編輯按鈕按鈕的視圖,但是在界面構建器中而不是在代碼中。 – LondonGuy
所以當你點擊按鈕時 - 你想在IB中創建一個viewController來顯示在屏幕上?你想不用手動調用segue來將視圖控制器推到屏幕上,是否正確? – Tander
所以,你希望你能夠從視圖本身添加標籤,按鈕等到你的視圖控制器? –