以编程方式添加按钮以执行segue

时间:2014-01-20 18:10:42

标签: ios iphone objective-c uibutton segue

我正在尝试使用代码“动态”创建一个按钮,我希望该按钮能够执行 转向不同的控制器。据我所知,以编程方式创建segue是不可能的,但如果创建的按钮不在我的故事板上,我怎么能通过呢?

这是创建按钮的代码:

- (void)addButton:(UIView*)view inLocation:(CGPoint)point
{

    UIButton *but=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    but.frame= CGRectMake(point.x, point.y,30,30);
    [but setTitle:@"CHOOSE" forState:UIControlStateNormal];
    // The nilSymbol should call a method that will perform the segue
    [but addTarget:self action:@selector(nilSymbol) forControlEvents:UIControlEventTouchUpInside];
    [view addSubview:but];  
}

有任何选择吗?

1 个答案:

答案 0 :(得分:8)

在Interface Builder中,创建一个segue。 由于您无法将segue连接到按钮(它尚不存在),只需将segue连接到起始ViewController即可。 然后,当您创建按钮时:

// ....
[but addTarget:self action:@selector(someMethod) forControlEvents:UIControlEventTouchUpInside];
// ....

在someMethod中:

-(void)someMethod
{
    [self performSegueWithIdentifier:@"segueIdentifier" sender:self];
}