如何在iOS故事板中添加按钮触摸操作

时间:2014-03-15 11:27:44

标签: ios xcode xcode-storyboard

我是iOS应用开发的新手。我正在浏览开发指南。我的应用程序有两个视图 - 一个带有按钮,然后单击该按钮可启动新视图。我添加了一个segue来启动新视图,并能够将其链接到按钮。但我不清楚启动新视图的确切操作以及我如何处理该操作。我想在启动新视图之前进行一些网络操作,因此想要处理该按钮点击事件(修饰)。我可以让Xcode为该特定事件生成虚拟处理函数吗?

3 个答案:

答案 0 :(得分:0)

如果您正在使用Storyboard并使用UIButton来启动新视图,则启动新视图的操作为prepareForSegue:sender:。在启动视图之前,您想要执行哪些网络操作?例如,如果您需要知道设备是否在线之前启动视图并仅启动它 如果设备具有互联网访问权限,您还可以使用{{1}其中有一个shouldPerformSegueWithIdentifier:sender:

例如:

if statement

只有当设备具有互联网访问权限时才会启动视图,如果没有任何事情发生的话。

答案 1 :(得分:0)

在包含故事板的视图控制器上,实现此方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if ([segue.identifier isEqualToString:@"YourSegueIdentifier"]) {
        // Implement your network operation here 

    } 
}

它将在segue发生之前执行。

答案 2 :(得分:0)

请勿将segue连接到按钮,将segue连接到View Controller本身,然后按下按钮的IBAction

- (IBAction)myButtonTapped:(id)sender {
    // If you need to do some other work prior to firing the segue, do it here.

    [self performSegueWithIdentifier:@"MySegue" sender:nil];
}

然后在prepareForSegue方法中完成准备工作:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSString *identifier = segue.identifier;

    if ([identifier isEqualToString:@"MySegue"]) {
        // Do my stuff here
    }
}

我几乎没有将segues连接到UIButton s,UITableCell等,我将它们连接到我的VC,然后在操作中调用segue。这为您提供了更多控制权。