2013-08-03 44 views
0

我創建一個按鈕,並把它添加到我的工具欄是這樣的:ios從編程創建的按鈕從segue打開模式?

UIButton *sendButtzon = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
sendButtzon.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; 
[sendButtzon setTitle:@"More" forState:UIControlStateNormal]; 
sendButtzon.frame = CGRectMake(toolBar.bounds.size.width - 18.0f, 
           6.0f, 
           58.0f, 
           29.0f); 
[toolBar addSubview:sendButtzon]; 

我怎樣可以打開一個新的viewController(我有一個名爲「更多查看」一SEGUE)?

回答

3

您實現以下操作方法:

-(void)buttonPressed:(UIButton*)sender 
{ 
    [self performSegueWithIdentifier:@"MoreView" sender:sender]; 
} 

和(在你的問題中加入這一行的代碼)像這樣鏈接給你的按鈕:

[sendButtzon addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

這對導致自來水按鈕調用buttobPressed:方法,該方法依次執行您在故事板中定義的細分。

+0

我得到這個錯誤終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:'接收器()沒有標識符'MoreView''的繼續 – Alosyius

+0

Oooops我錯過了實際的鏈接在IB的兩個意見! :)感謝很多人現在效果很好 – Alosyius

+0

在這種情況下,segue或者沒有被定義,或者是從不同的視圖控制器定義的。 – jrturton

0

爲此,您必須在故事板中定義名爲「MoreView」的segue。

,否則你必須在按鈕創建UIViewControler點擊這樣的..

-(void)buttonPressed:(UIButton*)sender 
{ 
    UIViewController *destinationController = [[UIViewController alloc] init]; 
    [self presentModalViewContrller:destinationController animated:YES]; 
} 

或創建視圖控制器形式的故事板。

-(void)buttonPressed:(UIButton*)sender 
{ 
    UIViewController *destinationController = [self.storyboard instantiateViewContrllerWithIdentifier:@"DestinationViewController "]; 
    [self presentModalViewContrller:destinationController animated:YES]; 
} 

每個UIViewController故事板都有屬性。