我在顯示UITableView的應用程序中創建了一個視圖。幾乎所有的時間都會顯示結果(顯然),但是當它沒有任何結果時,我想顯示另一個視圖,告訴用戶他/她如何填充表格。在Interfacebuilder中創建自定義視圖並使用代碼
我想在interfacebuilder中設計該視圖。我將不得不在代碼中檢查數據源是否爲空或在兩個不同的nib之間切換。如何實例化和配置在Interfacebuilder中製作的視圖?
我在顯示UITableView的應用程序中創建了一個視圖。幾乎所有的時間都會顯示結果(顯然),但是當它沒有任何結果時,我想顯示另一個視圖,告訴用戶他/她如何填充表格。在Interfacebuilder中創建自定義視圖並使用代碼
我想在interfacebuilder中設計該視圖。我將不得不在代碼中檢查數據源是否爲空或在兩個不同的nib之間切換。如何實例化和配置在Interfacebuilder中製作的視圖?
最簡單的方法是通過在xib中正常添加視圖並使其可見 設計您的兩個視圖,表視圖和其他視圖,例如給tableView一個標記111,並給另一個視圖另一個視圖標籤222例如現在
在viewDidLoad
同時獲得意見
UIView *noDataView = [self.view viewWithTag:222];
UITableView *tableView = [self.view viewWithTag:111];
//Hide both of them or only the noDataView until you know if you have data from the dataSource or not
檢查您的數據源
//hasElements do you have any element to show?
if(hasElements)
{
noDatView.hidden = YES;
tableView.hidden = NO;
}
else
{
noDatView.hidden = NO;
tableView.hidden = YES;
}
可以按如下方式加載基於condition.You可以寫類別筆尖文件:
self.view = (UIView *)[self loadNib:@"SecondView" inPlaceholder:self.view];
- (UIView *)viewFromNib:(NSString *)nibName
{
NSArray *xib = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
for (id view in xib) { // have to iterate; index varies
if ([view isKindOfClass:[UIView class]]) return view;
}
return nil;
}
- (UIView *)loadNib:(NSString *)nibName inPlaceholder:(UIView *)placeholder
{
UIView *nibView = [self viewFromNib:nibName];
[nibView setFrame:placeholder.frame];
self.view = nibView;
//[self.view insertSubview:nibView aboveSubview:placeholder];
//[placeholder removeFromSuperview];
return nibView;
}
其他的答案給你一個可能的技術解決方案,但我建議,如果你使用的是標準的蘋果設計指南,你可能甚至不需要擔心它。例如,在屏幕上的某個位置,您應該有一個帶有標識符「添加」(顯示加號圖標)的酒吧按鈕項目。然後,不要給出如何添加項目的很長(通常很差的本地化)說明,只需爲空白部分標題爲「沒有項目」,用任何複數名詞替換項目都適合您的表格項目。例如,對於一個射箭相關的應用我的工作:
通知的編輯按鈕當前如何禁用過,因此不需要解釋,因爲他們可以在這一點上做的唯一的事情就是挖掘添加按鈕(Appstore上的屏幕截圖將顯示他們在這一點之後可以看到的內容)。
請檢查這一個 [UIView和initWithFrame和一個NIB文件。我怎樣才能加載NIB文件] [1] [1]:http://stackoverflow.com/questions/5056219/uiview-and-initwithframe-and-a-nib-file-how - 可以-I-得到最筆尖文件加載 – dianz