问题
I\'ve got 2 view controllers, let\'s say A and B. In A, I\'m calling B to be shown with transition style UIModalTransitionStylePartialCurl
[b setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[self presentModalViewController:b animated:YES];
It is working fine. However when I press the curled area in the program compiled with iOS 4.3. It does not dismiss at all. It doesn\'t get back to A view controller...
What the most interesting is that this curl is active and giving response in the app compiled with iOS 5.0.
How can I resolve this problem?
Moreover, why doesn\'t it dismiss the B view controller and get back to A ?
回答1:
Here is the link to Apple site for the Modal View Controllers
Basically, you need to setup delegate, etc. And call dismissModalViewControllerAnimated: method from your viewcontroller A. Let me know if you need further help.
Edit per MiiChiel:
In BController.h file, add this:
@protocol BControllerDelegate <NSObject>
-(void)dismissMe;
@end
@interface BController : UIViewController
//...
@property (assign) id <BControllerDelegate> delegate;
//...
@end
In BController.m file, add this:
@implementation BController
@synthesize delegate;
//...
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.delegate dismissMe];
}
In the AController.h file, add this:
#import "BController.h"
@interface AController : UIViewController <BControllerDelegate>
In the AController.m file, add this:
//add this line before presenting the modal view controller B
bController.delegate = self; // assuming bController is the name of the modal
-(void)dismissMe
{
//call back from modal view to dismiss it
[self dismissModalViewControllerAnimated:YES];
}
来源:https://stackoverflow.com/questions/8606674/uimodaltransitionstylepartialcurl-doesnt-get-back-to-previous-state-not-dismi