我不知道该怎么做。所以我最初有一个ViewController有一个.xib,有一个主视图。我这样说:
DogViewController *dvc = [[DogViewController alloc] initWithNibName:@"DogViewController" bundle:nil];
dvc.modalPresentationStyle = UIModalPresentationFormSheet;
dvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:dvc animated:YES];
[dvc release];
这样可行。但是现在从DogViewController.xib中的按钮按下,我想要关闭当前的表单,并在继续之前显示另一个表单以及一些其他问题。所以我开始在DogViewController的原始.xib中添加另一个视图,然后陷入如何解散第一个的逻辑,并显示第二个。我假设我需要在同一个.xib的新视图中使用一些插座,但是从那里我迷失了。感谢。
答案 0 :(得分:0)
您可以在的所有其他对象前面的其他视图中添加视图,只需使用其hidden
属性来控制是否显示它。
答案 1 :(得分:0)
为什么不在模态视图中使用导航控制器,创建另一个xib并执行[self.navigationController pushViewController:secondViewController animated:YES];
如果您有充分的理由,可以设置第二个视图插座secondView并使用
之类的代码UIView* superview = [self.view superview];
[self.view removeFromSuperView];
[superview addSubview:self.secondView];
答案 2 :(得分:0)
这样做的方法是用Mathiew提到的UINavigationController来设置它。但是,如果您真的想在一个视图控制器上的两个视图之间进行转换,可以参考Apple的示例代码:
http://developer.apple.com/library/ios/#samplecode/ViewTransitions/Introduction/Intro.html
代码使用ImageViews来演示效果,但我不明白为什么你不能使用视图:)
答案 3 :(得分:0)
非常简单的解决方案是保持对MainViewController的引用,并在其上调用两个视图控制器之间交换的方法。
像这样:
@implementation MainViewController
- (void)showDogViewController {
[self dismissModalViewControllerAnimated:YES];
DogViewController *dvc = [[DogViewController alloc] initWithNibName:@"DogViewController" bundle:nil];
dvc.modalPresentationStyle = UIModalPresentationFormSheet;
dvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
dvc.mainViewController = self;
[self presentModalViewController:dvc animated:YES];
[dvc release];
}
- (void)showCatViewController {
[self dismissModalViewControllerAnimated:YES];
CatViewController *cvc = [[CatViewController alloc] initWithNibName:@"CatViewController" bundle:nil];
cvc.modalPresentationStyle = UIModalPresentationFormSheet;
cvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
cvc.mainViewController = self;
[self presentModalViewController:cvc animated:YES];
[dvc release];
}
}
@end
@implementation DogViewController
- (void)showCatViewController {
[mainViewController showCatViewController]
}
@end
@implementation CatViewController
- (void)showDogViewController {
[mainViewController showDogViewController]
}
@end