0

我正在开发我的第一个 iPhone 应用程序,并在我的代码中偶然发现了一个未知错误。代码工作得很好,但问题在于当我点击我制作的自定义 UIButton 并加载下一个视图时。我有一个期望的 buttonPressed IBAction 被调用来处理下一个视图控制器上加载的信息,但是函数调用的顺序是错误的。我有 5 个不同的 buttonPressed 功能,5 个中有 3 个工作正常。请注意,我通过 Storyboard 以完全相同的方式实现了它们,甚至尝试重新制作不工作的那些。我会发布代码,但代码是基本的 if/else 语句。我只是不确定为什么 5 种方法中有 3 种会起作用,而另外 2 种不会。任何帮助将不胜感激。

**这是工作 3 所需的顺序:

viewDidLoad -> 加载主屏幕(初始视图控制器 AKA ROOT,在主屏幕上,您有 5 个 UIButtons 来选择一个类别,点击一个按钮以加载到新的视图控制器)

categoryButtonPressed -> 设置计数器(新视图控制器的序列)

viewDidLoad -> 加载屏幕以缩小搜索范围

(现在您有 10 多个自定义按钮可以点击,每个按钮都将通过 buttonPressed IBAction 函数进行处理,一旦点击按钮并调用函数,就会加载一个新视图)

buttonPressed -> 设置计数器(新视图控制器的序列)

viewDidLoad -> 加载正确的信息

这是非工作 2 的顺序:

viewDidLoad -> 加载主屏幕(初始视图控制器 AKA ROOT)(在主屏幕上,您有 5 个 UIButtons 来选择一个类别,点击一个按钮以加载到新的视图控制器)

categoryButtonPressed -> 设置计数器(新视图控制器的序列)

viewDidLoad -> 加载屏幕以缩小搜索范围(现在您有 10 多个自定义按钮可以点击,每个按钮都将通过 buttonPressed IBAction 函数进行处理,一旦点击按钮并调用函数,就会加载一个新视图)

viewDidLoad -> 加载空白信息(空白屏幕)

buttonPressed -> 设置计数器,但由于视图已经加载为空白而迟到

想法?**

这是 categoryButtonPressed 的示例:

-(IBAction)categoryButtonPressed:(id)sender

{

if([sender tag] == 1)

    counter = 1;

else if([sender tag] == 2)

    counter = 2;

.

.

.

}

注意:我为要加载的特定项目标记了每个自定义按钮。此函数只是设置一个计数器,以便另一个函数可以加载特定文件。

4

1 回答 1

0

使用转场。

在您的主视图控制器上,通过在按下特定转场时在视图控制器上加载所需的信息来设置转场。

如果您使用故事板,您可以按照本指南进行操作

http://www.scott-sherwood.com/?p=219

寻找“prepareForSegue”方法,当使用故事板时,模态呈现的视图应该以这种方式预先配置。

附带说明一下,“viewDidLoad”通常不用于加载另一个视图,它应该用于在加载后配置该视图。

于 2012-05-16T01:05:07.063 回答