2014-04-15 22 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]; 
} 
相关问题