2012-10-10 39 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:

相关问题