我正在为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。
答案 0 :(得分:5)
如果resultsView
是NULL
或nil
,那么您没有在界面构建器或代码中正确分配它。确保在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")
我希望这可以帮助那些人。