0

我是 iphone 开发的新手。我在 Xcode4.2 和 iOS5 中工作。我已经用于将一个视图导航到另一个视图:这工作正常..

-(IBAction)viewFullProfile:(id)sender
{
    OperatorFullProfile *operatorFullProfile = [[OperatorFullProfile alloc] initWithNibName:@"OperatorFullProfile" bundle:nil];    
    [self presentModalViewController:operatorFullProfile animated:YES];

}

但是当我解雇 OperatorFullProfile 时,它​​并没有被解雇。对于解雇代码:

-(IBAction)Cancel:(id)sender
{
  [self.parentViewController dismissModalViewControllerAnimated: YES];
 // [self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];
 // [self dismissViewControllerAnimated:YES completion:nil ];
}

我正在努力解决这个问题,请帮忙。

4

4 回答 4

1

只需调用:

[self dismissModalViewControllerAnimated: YES];

应该可以解决问题,无需获取父视图控制器。

于 2012-05-14T14:34:40.363 回答
0

在您的取消按钮方法的 OperatorFullProfile.m 文件中...

-(IBAction)Cancel:(id)sender
{
  [self dismissModalViewControllerAnimated: YES];

}

而你目前的这种观点将驳回...... :)

于 2012-05-14T14:38:40.080 回答
0

您必须dismissModalViewControllerAnimated:UIViewController提供模态视图控制器的地方调用。

一种典型的(并且设计良好的)方法是使用委托。假设模态控制器有一个Done按钮。您在模态视图控制器中声明 a @protocol,假设其方法是 ,didTapDoneButton并且具有作为@property该协议的实例的 a ,我们称之为delegate

IBAction, 调用

-(IBAction)Cancel:(id)sender
{
    [self.delegate didTapDoneButton];
}

在呈现模态的视图控制器中实现协议,并在创建模态控制器时将其委托属性设置为self.

-(IBAction)viewFullProfile:(id)sender
{
    OperatorFullProfile *operatorFullProfile = [[OperatorFullProfile alloc] initWithNibName:@"OperatorFullProfile" bundle:nil];    
    operatorFullProfile.delegate = self;
    [self presentModalViewController:operatorFullProfile animated:YES];

}

在该类中,实现协议的方法,该方法将在按下按钮时调用:

-(void)didTapDoneButton
{
    [self dismissModalViewControllerAnimated: YES];
}

这样,负责呈现模态控制器的控制器也负责解除它。

于 2012-05-23T06:57:43.920 回答
0

写吧:

[自我dismissModalViewControllerAnimated:是];

干杯。

于 2012-05-23T07:52:18.457 回答