gpt4 book ai didi

ios - 使用以相同的方法以编程方式创建的 UIButtons 加载不同的 UIViewControllers

转载 作者:行者123 更新时间:2023-11-29 02:48:56 25 4
gpt4 key购买 nike

我以编程方式生成了所有共享相同选择器方法的 UIButton。当该方法运行时,我希望该方法知道按下了哪个按钮,然后能够加载相应的 UIViewController。

-(void)buildButtons
{
for( int i = 0; i < 5; i++ ) {
UIButton* aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton setTag:i];
[aButton addTarget:self action:@selector(buttonClicked:)forControlEvents:UIControlEventTouchUpInside];
[aView addSubview:aButton];
}

然后:

- (void)buttonClicked:(UIButton*)button
{
NSLog(@"Button %ld clicked.", (long int)[button tag]);
// code here that picks the correct viewController to push to...
// for example tag 1 would create an instance of vcTwo.m and would then be pushed to the navigationController and be displayed on screen
}

假设我有三个 UIViewController 类(vcOne.m、vcTwo.m、vcThree.m)并且我想要它以便在按下按钮时运行“buttonClicked”并且代码选择相应的 viewController 以推送到。我不想使用一系列 if 语句,因为最后可能有几十个/数百个 viewController。我是否必须实例化所有 viewControllers 并将它们放在一个数组中?有没有更好的办法?

最佳答案

你在使用 Storyboard吗?所以你可以根据按钮标签选择一个segue:

int i = (int)[button tag];
[self performSegueWithIdentifier:[NSString stringWithFormat:@"Segue%d", i] sender:self];

或:

UIViewController *viewController= [controller.storyboard instantiateViewControllerWithIdentifier:NSString stringWithFormat:@"ViewControllerNumber%d", i];

关于ios - 使用以相同的方法以编程方式创建的 UIButtons 加载不同的 UIViewControllers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24781695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com