2011-02-17 112 views
1

這看起來很簡單,但我剛剛開始如此忍受我...添加一個沒有XIB的子視圖

我有一個帶有工具欄的主視圖。當用戶按下工具欄中的按鈕時,我想在屏幕的頂部出現一個小提示。我在現有的UIView中添加了一個UIView,並將其設置爲隱藏。我是連接到我的視圖控制器稱爲「搜索查看」伊娃,並嘗試以下操作:

searchView.hidden = NO; 

如果沒有工作,我嘗試添加...

[self.view addSubview:self.searchView]; 

...這也沒有工作。

我是否需要設置索引以使其位於主視圖之上?

這種方法完全錯誤嗎?

+0

so searchView * does * exists in your XIB? – hauntsaninja 2011-02-17 07:41:36

+0

這是正確的。 – Robert 2011-02-19 03:07:08

回答

1

如果您從界面構建器創建了UIView,請忘記使用addSubview,因爲界面構建器會自動執行此操作。

要做到這一點在圖形模式(IB),按照此步驟:

在文件中的 「h」 定義一個IBOutlet應該是這樣的:

IBOutlet UIView * myHiddenView; 

然後在IB,連接IBOutlet中您已經在h文件中定義了您在IB中以圖形方式創建的UIView,並將隱藏屬性賦予此UIView(複選框)。

在你按下按鈕方法

那麼做到這一點:

myHiddenView.hidden = NO;

如果你喜歡做編程方式複製此示例代碼:

定義在.h文件

UIView *myHiddenView; 

的接口.h文件後的界面:

-(void)displayView:(id)sender; 

然後在.m文件中:

-(void)viewDidLoad{ 
    myHiddenView = [[UIView alloc] initWithFrame: CGRectMake (x, y, width, height)]; 
    myHiddenView.hidden = YES; 
    [self.view addSubview: myHiddenView] 

    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y, width, height)]; 
    [button setTitle:@"button" forState:(UIControlState)normal]; 
    [button addTarget: self action: @selector(displayView:) forControlEvents: UIControlEventTouchUpInside]; 
    [self.view addSubview:button]; 
} 

-(void)displayView:(id)sender{ 
    myHiddenView.hidden = NO; 
} 
相關問題