滑动桌面视图的导航

时间:2015-05-06 08:56:17

标签: ios objective-c

我有tableviewcontroller,当用户点击barButtonItem时,我希望此tableviewontroller从左向右滑动,因此它只覆盖了75%的视图。

并且,当用户点击同一barbutton时,我希望tableview向后滑动。

我如何以编程方式执行此操作。

-(IBAction)barButtonClicked {
     self.leftTableview = [[LeftTableViewController alloc]init];
}

3 个答案:

答案 0 :(得分:0)

设置容器视图控制器。将要显示的两个视图控制器添加到容器视图控制器作为子视图控制器。

用户点击栏按钮,更改容器视图中显示的视图的框架。

可以找到有关自定义容器视图控制器的更多信息here

答案 1 :(得分:0)

-(IBAction)barButtonClicked {

    if (self.leftTableview != Nil) {
        self.leftTableview = [[UITableView alloc]initWithFrame:CGRectMake(-self.view.frame.size.width * 0.75, 0, -self.view.frame.size.width * 0.75, self.view.frame.size.height)];
        [self.view addSubview:self.leftTableview];

        //settingDataSource and Delegate - do this after you have tested that everything else is working
        [self.leftTableview setDataSource:self];
        [self.leftTableview setDelegate:self];
    }

    [UIView beginAnimations:@"showMenu" context:nil];
    [UIView setAnimationDuration:0.3];
    [UIView setAnimationDelegate:self];

   {
        if (self.leftTableview.frame.origin.x < 0) {
            [self.leftTableview setFrame:CGRectMake(0, 0, self.leftTableview.frame.size.width, self.leftTableview.frame.size.height)];
        } else {
            [self.leftTableview setFrame:CGRectMake(-self.leftTableview.frame.size.width, 0, self.leftTableview.frame.size.width, self.leftTableview.frame.size.height)];
        }
   }

   [UIView commitAnimations];

}

我相信你把UITableView与UITableViewController混淆了。在我的代码中,只有空白的tableView,你需要设置委托和数据源

答案 2 :(得分:0)

我希望这会对你有所帮助

#pragma mark - TableView

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
   return 1;
    }   
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
   return [self.tableData count];
    }
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];

   if (!cell){
   cell = [[UITableViewCell alloc]    initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }

   cell.textLabel.text = self.tableData[indexPath.row];

   return cell;
    }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    UINavigationController *nvc;
    UIViewController *rootVC;

    switch (indexPath.row) {
        case 0: {
        rootVC = [[FirstVC alloc] initWithNibName:@"FirstVC" bundle:nil];
     }
       break;
       case 1: {
       rootVC = [[SecondVC alloc] initWithNibName:@"SecondVC" bundle:nil];
     }
       break;
       case 2: {
       rootVC = [[ThirdVC alloc] initWithNibName:@"ThirdVC" bundle:nil];
     }
         break;
         default:
         break;
     }
      nvc = [[UINavigationController alloc] initWithRootViewController:rootVC];
      [self openContentNavigationController:nvc];
 }