以编程方式创建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
所以,你希望你能够从视图本身添加标签,按钮等到你的视图控制器? –