0

我有一个基于 tabBar 控制器的应用程序。在某个视图中,我想添加滑动手势识别并将当前视图与另一个视图交换(这不是 tabBarController 数组的一部分)。我努力了:

- (IBAction)swipeLeftDetected:(UIGestureRecognizer *)sender
{
//Does not work
UIViewController *DesiredViewController =[[UIViewController alloc] initWithNibName:@"DesiredViewController" bundle:nil];
DesiredViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:DesiredViewController animated:YES];

[self.view addSubview:DesiredViewController.view];
}

但程序崩溃。我得到的错误与下一个视图中存在但当前视图中不存在的 SegmentedControl 有关。视图独立工作完美!

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason:'[<UIViewController 0xa355fb0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key X_SegmentedControl.'

我不明白我做错了什么。我想完全交换观点,而不是把一个观点放在一起。请问有什么建议吗?谢谢

4

2 回答 2

1

而是使用这个

-(IBAction)swipeLeftDetected:(UIGestureRecognizer *)sender
{
    DesiredViewController *objView =[[DesiredViewController alloc]initWithNibName:@"DesiredViewController" bundle:nil];
    objView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:objView animated:YES];
    [objView release]; // use release if using Non-ARC
}
于 2013-05-10T07:16:01.983 回答
0

问题不在于过渡。

您正在从 NIB 加载视图控制器。

视图控制器通常是子类的,因此(假设您的 nib 配置正确并且您拥有DesiredViewController 子类.h.m实现文件)您应该像这样初始化:

DesiredViewController *controllerInstance =[[DesiredViewController alloc] initWithNibName:@"DesiredViewController" bundle:nil];

例外是因为您的视图控制器子类中可能有一个分段控件,Xcode 试图将此控件链接到视图控制器上的插座,但该插座不存在(因为您分配的UIViewController不是子类)。

于 2013-05-10T07:08:59.087 回答