1

我正在尝试制作一些自定义视图,我想知道如何在你有 UISegmentControl (或类似的东西)并且你在不同的视图控制器之间切换但段控制保持在同一个位置的情况下实现这样的东西(不介意图片大小不同)。就像一个导航控制器,但有一个段而不是它。任何想法将不胜感激。谢谢

在此处输入图像描述 在此处输入图像描述

4

3 回答 3

2

这很容易做到。您只需要使用导航控制器,但在所有视图上隐藏导航栏。然后你可以使用

[self.navigationController pushViewController:@"Your viewController to which you want to navigate" animated:YES];

在选择段索引上。并且要从任何这些视图控制器返回,您只需要实现这个

[self.navigationController popViewControllerAnimated:YES];在选定段索引的按钮操作上。我希望这会对你有所帮助。快乐编码..!!!

于 2013-01-30T11:16:12.897 回答
0

您可以使用段控制和数组创建 ViewController,其中将包含其他控制器。在段更改时,您应该从数组中的一个控制器查看视图,并将其像子视图一样添加到父 ViewControllerView。这看起来像这样

//in ViewControllerView.m
-(void)touchUpInsideSegmentIndex:(NSUInteger)segmentIndex {
   //delegate is your ViewController
    UIView * newToolView = [delegate viewAtIndex:segmentIndex];
    //contentView declared in ViewControllerView.h
    if (newToolView != contentView && newToolView) {
        [contentView removeFromSuperview];
        [contentView release];
        contentView = [newToolView retain];
        [self addSubview:contentView];
        [self setNeedsLayout];
    }
}

//in ViewController.m
- (UIView*)viewAtIndex:(NSInteger)index {
    //yourControllersArray is an array of your controllers
    if (index < 0 || index >= [yourControllersArray count]) {       
        NSLog(@"View At Wrong Index %d (max=%d)", index, [yourControllersArray count]);
        return nil;
    }
    return [[yourControllersArray objectAtIndex: index] view];
}
于 2013-01-30T10:49:48.583 回答
0
  1. 在导航栏中定位 UISegmentedControl。
  2. 设置导航栏透明。
  3. 在 UISegmentedControl 方法中,从 UINavigationController 堆栈推送和弹出视图控制器,或显示和关闭模式
于 2013-01-30T10:49:58.917 回答