2012-10-10 77 views
0

對我有點困惑,但我確信我犯了一個很小的錯誤。請指導我正確的方向。 這是情況。從一個視圖中調用2個視圖取決於選擇哪個段

我有一個OneViewController有2段。 segment1的代碼已經在工作,因爲它是在OneViewController中編寫的(不是tableviewController,但我想顯示一個tableView,以便手動編寫它的代碼),因爲Segment1是默認選中的。當我點擊段2時,我必須顯示另一個tableViewController(爲此我創建了一個名爲TwoTableViewController的類)。我希望兩個tableView都應該出現在同一個視圖中(不推送新視圖)。 最重要的是分段控制永遠不會消失。

我也附上了代碼的相關部分。我知道我之前曾問過類似的問題,但這真的很混亂,所以我想重新開始。希望我能原諒! :)

下面的代碼:

-(void)viewDidLoad 
{ 
    //has the elements I want to display when I click on segment 1. since it is already selected , I have written it here 
} 
    -(IBAction) segmentedControlChanged 
    { 
     switch(segmentedControl.selectedSegmnentIndex) 
     { 
      case 0: 
      //default first index selected. 
      [tableView setHidden:NO]; 
      if(self.view viewWithTag==9999]{ 
       [[self.view viewWithTag:9999]removeFromSuperView]; 
        } 
       break; 

      case 1: 
      NewTableViewController *controller=[[NewTableViewController alloc] initWithNibName:@"NewTableViewController" bundle:nil]; 
      [controller.view setTag:9999];   
      break; 
      default: 
      break; 
     } 
    } 

NewTableViewController有不同的方法和數據源和委託是在IB設置的TableView。當我點擊Segment2時,我想要做的就是調用這個NewTableViewController。

回答

0

更好的填充,並寫在同一類UITableViews代碼(在OneViewController

您可以通過以下方式

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 

    int numberOfSections = 0; 

    if(tableView == yourTableViewOne){ 

      numberOfSections = 5; 
     } 

    else if (tableView == yourTableViewTwo){ 

      numberOfSections = return 3; 
    } 

    return numberOfSections; 
} 

使用相同的檢查中的所有其他識別curresponding的tableView UITableView代表。在-(IBAction) segmentedControlChanged

[self.view addSubview:self.YourTableView]; 
+0

而我不希望分段的控制消失,一旦我點擊段2. – user1727927

+0

所以寫條件和代碼它..我沒有請詳細說明您的意見..請詳細說明.. –

+0

好吧..有這個事情。我應該在哪裏編寫NewTableViewController的viewDidLoad? – user1727927

0

添加以下代碼或者通過推導航控制器上或由模態呈現,或使用的TabBar控制器,而不是segmentedcontrol的。

我的建議的片是

聲明該子類的UIViewController的類。在底部添加一個分段控件並在其上方添加一個可用視圖。

無論何時用戶點擊一個段,重新加載tableview與相應的數據。這樣你可以節省內存。你不需要去除/添加/隱藏的意見的痛苦..

0
//view1,view2 are uiviews not a view controllers-(IBAction) segmentedControlChanged 

-(void)segcontrol 
{ 
    if(segments.selectedSegmentIndex==0) 
    { 
     self.view=view1; 

    } 
    else 
    { 
     self.view=view2; 
    } 

} 
0

您可以顯示第二視圖控制器Case 1:

相關問題