[英]Is it possible to switch view to tableview from same view?
我有一個viewcontroller.xib,其中包含視圖,按鈕,工具欄按鈕,文本框和tableview。 當我加載初始屏幕時沒有表視圖,這很好。 現在,當我單擊工具欄上的按鈕說“ viewtable”時,我希望視圖移到tableview。 我已經用一些默認對象填充了tableview數據,如下所示:
- (void)viewDidLoad
{
tableData = [[NSArray alloc] initWithObjects:@"object1",@"object2",@"object3",@"object4", nil];
[super viewDidLoad];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [tableData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"My Cell"];
if(cell==nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"My Cell"];
}
cell.textLabel.text=[tableData objectAtIndex:indexPath.row];
return cell;
}
因此,當我單擊工具欄視圖按鈕時,它應該顯示帶有工具欄按鈕的表視圖,該工具欄按鈕也具有后退按鈕,因此當我單擊它時,它應該隱藏表視圖並顯示初始視圖。 是否可以在單個xib中完成所有這些操作? 如果我創建另一個xib並將控制權簡單地轉移到該xib,則可以實現結果,但是我想知道是否有可能在不創建第二個xib文件的情況下做到這一點。 對於導航,我可以使用導航控制器,但是我想檢查一下是否可以使用工具欄來轉移控件。 謝謝。
如果您不需要動畫,則可以執行以下操作
在您的界面中獲取tableView的句柄,如下所示:
@property(nonatomic,assign)IBOutlet UITableView * tableView;
最初在您的表視圖中隱藏(例如在viewDidLoad方法中)
-(void)viewDidLoad {[super viewDidLoad]; self.tableView.hidden =是; }
然后在工具欄按鈕調用的方法中執行以下操作
-(void)on_click_toolbar_button {self.tableView.hidden =!self.tableView.hidden; //這將保持表格視圖從隱藏狀態切換到顯示狀態,反之亦然。 }
您可以使用hidden屬性來實現。 將它們放在適當的方法中。
_tableView.hidden = Yes;
_tableView.hidden = No;
我強烈建議在兩個單獨的XIB中執行此操作。 第一個應該包含一個UIViewController
(您的初始視圖),第二個應該包含一個UITableViewController
(您的表視圖)類。 兩者都應該由UINavigationController
處理-不要爭吵API,如果沒有必要,請嘗試自己動手。 提到的控制器類為您提供了開箱即用所需的一切。
好吧,不建議這樣做,但是您可以通過刪除並添加tableview來實現。
首先檢查表視圖是否在視圖內,如果不放在視圖中,並將數據源的委托設置為文件所有者,然后在視圖表方法中編寫此代碼
-(void)viewTable
{
self.tableView.hidden = NO;
self.viewToolbar.hidden=YES;
}
在工具欄中的后退按鈕代碼上寫
-(void)goback
{
self.tableView.hidden = YES;
self.viewToolbar.hidden=NO;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.