0

我有一个非常简单的应用程序,它只有 2 个视图控制器。初始根控制器上有两个 UIButton,它们都通过 Storyboard 转换到第二个视图控制器。在第二个视图控制器上加载的信息由链接到两个初始视图控制器的 buttonPressed IBAction 确定。我遇到的问题是,一旦我点击两个按钮之一,我就会让第二个视图控制器加载空白。从调试中,我注意到 buttonPressed 函数在第二个视图加载后被调用。如何在第二个视图控制器加载空白之前调用 buttonPressed 函数?

几乎不涉及任何代码,我将 UIButtons 标记为 1 和 2,并且按钮按下功能根据等于 1 或 2 的发件人标记加载两个文本文件。所有内容都在 Storyboard 中链接。有什么建议么?

*按钮按下功能:

if([发件人标签] == 1)

count = 1;

别的

count = 2;

计数确定要加载的文件。

*在 Storyboard 中,我只有 2 个视图控制器(没有导航或任何其他)和初始视图上的两个 UIButtons 和第二个显示文本的文本视图。UIButtons 连接到 buttonPressed 和第二个视图控制器 segue。

4

2 回答 2

1

不要为按下按钮而烦恼 IBAction。让按钮连接到新控制器并用于prepareForSegue:sender:确定点击了哪个按钮(发送者)。

然后,您可以获得对即将出现的控制器的引用,例如...

SecondController *next = (SecondController *)[segue destinationViewController];

...并告诉它要加载哪个文件,它可以在viewDidLoad:.

于 2012-05-16T19:52:35.837 回答
0

这听起来像是一个案例prepareForSegue

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([[segue identifier] isEqualToString:@"First Button Segue Identifier"])
    {
        ViewController *theViewController = segue.destinationViewController;
        theViewController.textProperty = self.firstButtonText;
    } 
    else if ([[segue identifier] isEqualToString:@"Second Button Segue Identifier"])
    {
        ViewController *theViewController = segue.destinationViewController;
        theViewController.textProperty = self.secondButtonText;
    }
}

好了,它非常通用,因为我不知道您的变量名称或您使用的文本。同样,如果 segue 没有单独的标识符,您可以使用 sender 来确定正在按下哪个按钮。

祝你好运!

于 2012-05-16T19:57:00.033 回答