2012-07-30 134 views
3

我正在爲iphone編寫應用程序,並試圖用兩種不同的視圖創建視圖控制器。所以我在故事板的初始視圖頂部創建了一個子視圖。我在.h中爲新視圖創建了一個插座。我想在按下按鈕後顯示resultsView,因此我將視圖設置爲隱藏在屬性中。UIView setHidden not working

@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它仍然是。

+0

你有沒有把一個NSLog的呼叫功能,以確保它獲取調用?你有沒有檢查,「resultsView」不是零當該函數被調用?還有'[resultsView setHidden = NO];'是無效的語法,它應該是:'[resultsView setHidden:NO];''或'resultsView.hidden = NO;' – 2012-07-30 18:36:05

+0

我檢查並resultsView是(NULL)謝謝指出語法錯誤 – 2012-07-30 18:40:35

+0

函數沒有被調用。我使用NSLog和resultsView.hidden = NO是不是改變BOOL resultsView.hidden從YES – 2012-07-30 18:45:02

回答

5

如果resultsViewNULLnil,則說明您沒有在界面構建器或代碼中正確指定它。確保將故事板/ xib文件中的出口連接拖放到某個位置,或將其分配到某處,如viewWillAppear

如果函數沒有被調用,那麼操作不會鏈接到界面生成器中的按鈕。爲確保連接正確,您可以按Ctrl +單擊(或右鍵單擊)並從按鈕拖到視圖控制器,然後從出現的「已發送操作」列表中選擇scanButtonTapped

+0

好吧我redid出口連接從resultView到.h和它工作。謝謝您的幫助 – 2012-07-30 18:53:41

1

最有可能的解釋是,當您嘗試設置隱藏屬性時,resultsView id爲零。

請檢查您的代碼以初始化resultsView,如果您需要更多幫助,請發佈相關部分。

0

如果您是設計一個@IBDesignableUIView,你正在使用快速,不知何故view.hidden = isHidden只是不工作。

解決方法如下。

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

我希望這可以幫助那裏的人。

1

另一種選擇 - 檢查你運行你[? setHidden:]代碼UIThread