我有一个小问题
我正在拍摄5个ViewCotrollers A,B,C,D,E。 A是RootViewcontroller。
在A a中添加一个按钮并给它一个动作。当我单击按钮时,显示presentModalViewController
被调用和B ViewController。它的addsubView流程。所以在所有观点中,同样的过程就是他们的。意味着连锁过程。
但在上一个视图中我想解雇这个presentmodalViewController。我尝试过这种代码。
-(IBAction)Done:(id)sender
{
[self dismissModalViewControllerAnimated:NO];
}
但它不起作用。给我适当的指导.. 感谢..
答案 0 :(得分:2)
尝试使用以下通知:
- (void)dismissSelf {
[self dismissModalViewControllerAnimated:YES];
}
- (void)receiveDismissNotification:(NSNotification *) note{
[self performSelectorOnMainThread:@selector(dismissSelf) withObject:nil waitUntilDone:NO];
}
答案 1 :(得分:1)
在E View的按钮事件中,写下此
-(IBAction)Done:(id)sender
{
id mainViewController = [self.view.superview.superview nextResponder];
[mainViewController dismissModalViewControllerAnimated:YES];
}
此代码未经过测试,但尝试使用此代码,希望它有效: - )
答案 2 :(得分:0)
在同一个.xib文件中创建从A到E的所有视图....
然后在.h文件中声明:
UIView *containerView;
和所有从B到E的视图的IBOutlets ..
在.m文件中:
在按钮动作中您可以执行此操作...
containerView= [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[containerView addSubview:BView];
[self.view addSubview:containerView];
此代码将在您的rootViewController中添加BView,即A ...
现在,在IBAction的休息视图中,您可以编写此代码进行导航..
[UIView transitionFromView:BviewController toView:CViewController duration:1.0 options:UIViewAnimationOptionTransitionCurlDown completion:nil];
依旧......
返回你的rootViewController,即A
[containerView removeFromSuperview];
在E视图的IBAction中; 或者您也可以使用transitionFromView导航...