UIView setHidden无法正常工作

时间:2012-07-30 18:32:37

标签: iphone objective-c storyboard

我正在为iphone编写一个应用程序,并尝试创建一个具有两个不同视图的视图控制器。所以我在故事板的初始视图之上创建了一个子视图。我在.h中为新视图创建了一个插座。我想在按下按钮后显示resultsView,所以我将视图设置为隐藏在属性中。

@interface ViewController : UIViewController 
{
UIView *resultsView;
}
@property (nonatomic, retain) IBOutlet UIView *resultsView;
- (IBAction)buttonTapped:(id)sender;

在我的.m中,我有以下代码

#import "ViewController.h"


@interface ViewController ()

@end

@implementation ViewController

@synthesize resultsView;

- (IBAction)scanButtonTapped:(id)sender
{
[resultsView setHidden = NO];
}

我也试过

resultsView.hidden = NO;

这两个都没有用,我试过NSLog来检索resultsView.hidden的BOOL,它仍然是YES。

4 个答案:

答案 0 :(得分:5)

如果resultsViewNULLnil,那么您没有在界面构建器或代码中正确分配它。确保在storyboard / xib文件中拖动插座连接,或者在viewWillAppear

之类的代码中分配插座连接

如果未调用该函数,则该操作不会链接到界面构建器中的按钮。要确保连接正确,您可以按住Ctrl键单击(或右键单击)并从按钮拖动到视图控制器,然后从出现的“已发送操作”列表中选择scanButtonTapped

答案 1 :(得分:2)

另一个选项 - 检查您是否在UIThread

中运行[? setHidden:]代码

答案 2 :(得分:1)

最有可能的解释是,当您尝试设置隐藏属性时,resultsView ID为nil。

请检查您的代码以初始化resultsView,如果您需要更多帮助,请发布相关部分。

答案 3 :(得分:0)

如果你正在设计一个@IBDesignable UIView而你正在使用swift,那么view.hidden = isHidden就会失效。

解决方法如下。

view.setValue(isHidden, forKey: "hidden")

我希望这可以帮助那些人。