【发布时间】:2012-05-23 13:19:16
【问题描述】:
我正在开发我的第一个 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;
.
.
.
}
注意:我为要加载的特定项目标记了每个自定义按钮。此函数只是设置一个计数器,以便另一个函数可以加载特定文件。
【问题讨论】:
-
@LuisOscar 谢谢,你是对的,我应该添加评论,而不是答案......我的错。没有更多信息很难说......我理解你的按钮按下应该设置即将到来的视图控制器的一些参数然后转换到那个视图控制器是否正确?在不按下按钮的情况下加载辅助视图控制器似乎很奇怪,就像上面的样子。您在代码中的何处初始化该控制器?
-
我已经更新了问题,也许现在你可以了解我想要做什么并弄清楚了。
标签: iphone ios xcode storyboard