2
votes

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
Show your codes. It would help us to have the proper understanding and give the needed answer. - adedoy
Well actually there is no code at all. All the thing that I'm doing is, the code above from A view controller. I can show you the XIB of B view controller. What I can say is that It is somehow because of there is a subview under the curl so that It is not triggered. But I did not understand the main reason. 92.44.22.81/~waqas/ss.png - kkocabiyik

1 Answers

1
votes

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];
}