0

我有一个非常简单的 ViewController 包含以下内容:

@interface ServingsView : UIViewController
@property (retain, nonatomic) IBOutlet UILabel *labelTitle;
@property (retain, nonatomic) IBOutlet UILabel *labelContent;
@property (retain, nonatomic) IBOutlet UIButton *buttonSelect;

我没有在这个控制器的 m 文件中添加任何代码。

现在,我正在创建这个视图控制器并将其视图添加到滚动视图中:

 for (NSSubArray * Choice in currentItem.ItemsArray)
    {
        stView * ChoiceView=[[stView alloc]initWithNibName:@"stView" bundle:nil];
        ChoiceView.view.tag=1515;
        [mScrollView addSubview:ChoiceView.view];
        ChoiceView.view.frame=CGRectMake(0, [self getMinimumHeight]+h*ChoiceView.view.frame.size.height , 320, ChoiceView.view.frame.size.height);
        ChoiceView.labelTitle.text=Choice.ArrayName;

        [ChoiceView.buttonSelect addTarget:self action:@selector(onSubservingItemClicked:) forControlEvents:UIControlEventTouchUpInside];

        ChoiceView.buttonSelect.tag=h;
        h++;
        increaseHeight+=ChoiceView.view.frame.size.height;
        // here is the problem:
        [ChoiceView release];
    }

现在,我没有在任何地方使用 ChoiceView。发生的事情是,按钮甚至没有显示,并且该视图没有任何响应。在其环境中使用视图滚动时,我遇到了不同类型的异常。有时它的 CALayer 异常,有时是 stView 异常。当我删除发布线时,一切正常。

我什至创建了一个测试项目,它没有在那里发生,所以我在这里遗漏了一些东西。

4

2 回答 2

0

不要做类似的事情[mScrollView addSubview:ChoiceView.view];。如果您查看有关视图控制器包含的 Apple 视频,您会发现他们将其描述为不一致的视图层次结构:https ://developer.apple.com/videos/wwdc/2011/?id=102

要么按照定义将视图作为滚动视图的视图层次结构的一部分,要么创建一个使用提供的父/子方法的容器视图控制器。

于 2012-08-05T15:56:06.570 回答
0

好的,这是一个非常奇怪的答案!经过多次测试和一个未能引发此错误的模拟应用程序后,我将故障控制器添加到另一个应用程序。得到了同样的结果!所以,我已经完全删除了它并创建了一个新的......现在它正在工作。

苹果 - 去想...

于 2012-08-07T10:55:24.060 回答