使用分段控件在2个视图之间切换

时间:2012-02-22 17:22:34

标签: iphone objective-c xcode uisegmentedcontrol

我创建了一个iphone应用程序,它使用分段控件在两个显示不同信息的viewController之间切换。因此,我在第一个视图控制器中定义了一个分段控件,我在IB中将其链接到我放置在相应视图上的分段控件。

@interface FirstViewController : UIViewController{

//NSArray                * viewControllers;
//UINavigationController * navigationController;
IBOutlet UISegmentedControl *segment; //->segment linked in the nib of FirstViewController

}

与分段控件相关的操作如下:

-(IBAction)valuechanged:(id)sender{

NSInteger index = [(UISegmentedControl *)sender selectedSegmentIndex];

UIViewController *parking=[[ParkingViewController alloc] 
initWithNibName:@"ParkingViewController" bundle:nil] ;

viewControllers= [NSArray arrayWithObjects:self,parking,nil];


if(index==1){
    UIViewController * incomingViewController = [viewControllers objectAtIndex:index];
    [self presentModalViewController:incomingViewController animated:YES];
            }   
}

在这个Action中,我定义了一旦用户点击分段控件后该做什么。这里,它正在加载一个名为ParkingViewController的新viewController。问题是,一旦加载了新的ParkingViewController,segmentedControl就会消失,所以我无法回到firstViewController。

我不知道如何为两个视图保留segmentedControl?

谢谢大家

昆汀

2 个答案:

答案 0 :(得分:1)

通常,UITabBarController用于控制两个或多个视图控制器之间的切换。它将保留在屏幕上并允许来回切换。

当您呈现模态视图时,您拥有的分段控制器无法保留在屏幕上。模态视图将占据整个屏幕。此外,由于您将其设置为屏幕动画,因此新视图中的分段视图控制器的副本将不会显示为相同的分段控件,因为用户看到它会滚动到屏幕上。

答案 1 :(得分:0)

我无法回到firstViewController ...... ??

  
    

您可以添加UIButton并调用IBAction     [self dismissModalViewControllerAnimated:NO];