How to make buttons that go to a different screen?

徘徊边缘 提交于 2019-12-11 19:18:24

问题


Hey I'm having a lot of trouble with this idea I have. How do I make buttons that go to a different screen but on the CODE?

Basically depending on a value that may or may not be different for every user (Let's say the value is in x already) it will make a list of buttons...

When you click the list of buttons, they each individually go to a different screen.

How do I do this? I know how to on storyboard.. but code wise?

Edit: I SHOULD note that for the buttons specifically I have this and it is working in the code (didn't use storyboard):

        UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btn.frame = CGRectMake(50, 200, 200, 50);
        [btn setTitle:@"Button 1" forState:UIControlStateNormal];
        [self.view addSubview:btn];

回答1:


First add a target to your button:

  //Add target to your button, to call a method that presents the next ViewController:
    UIButton *yourButton = [[UIButton alloc]init];
    [yourButton addTarget:self action:@selector(goToNextPageMethod) forControlEvents:UIControlEventTouchUpInside];

User one of the two, case you are using a UINavigation controller or not, place them in the method you are calling when the button is pressed (the target)

    //Normal presentation
    YourViewController *vc = [[YourViewController alloc]init];
    [self presentViewController:vc animated:YES completion:nil];
    //Navgiation bar
    YourViewController *vc = [[YourViewController alloc]init];
    [self.navigationController pushViewController:vc animated:YES];

Hope this helps




回答2:


You can attach an action to your button by doing the following:

UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(50, 200, 200, 50);
[btn setTitle:@"Button 1" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(someAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];

and then in your someAction method, you push the view modally or via your navigation controller

- (void)someAction
{
    //init your view controller here....
    YourViewController *vc = [[YourViewController alloc]init];
    [self.navigationController pushViewController:vc animated:YES];
}


来源:https://stackoverflow.com/questions/22647811/how-to-make-buttons-that-go-to-a-different-screen

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!