Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

dismissmodalviewcontrolleranimated is deprecated first deprecated in ios 6

Tags:

iphone

I have just updated iOS 6, and run my old code, which is created in iOS 4.3. They give me number of warnings in my application.

I used presentModelViewController: and then I dismiss it, but it gave me warning

dismissModalViewControllerAnimated is deprecated first deprecated in iOS 6.

Why they show warning to that code? Here is the code:

[picker dismissModalViewControllerAnimated:YES];

This line gets yellow and show the error. Please give me guideline to remove the warning.

like image 863
Piyush Avatar asked Sep 28 '12 13:09

Piyush


3 Answers

Now in ios 6 You can use

[[Picker presentingViewController] dismissViewControllerAnimated:YES completion:nil];

Instead of

[[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

and

[self presentViewController:picker animated:YES completion:nil];

Instead of

[self presentModalViewController:picker animated:YES];
like image 74
Dipang Avatar answered Nov 15 '22 04:11

Dipang


You should only get the deprecation warning if your deployment target is set to iOS 6. So I would check your deployment target, which is probably set to the Xcode default. Once you change this to 4.3 the deprecation warnings should disappear.

like image 20
Mike Weller Avatar answered Nov 15 '22 06:11

Mike Weller


You can use dismissViewControllerAnimated:completion, from the iOS Developer docs

dismissViewControllerAnimated:completion:

Dismisses the view controller that was presented by the receiver. - (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion Parameters

flag

Pass YES to animate the transition. completion

A block called after the view controller has been dismissed.

Discussion

The presenting view controller is responsible for dismissing the view controller it presented. If you call this method on the presented view controller itself, it automatically forwards the message to the presenting view controller.

If you present several view controllers in succession, thus building a stack of presented view controllers, calling this method on a view controller lower in the stack dismisses its immediate child view controller and all view controllers above that child on the stack. When this happens, only the top-most view is dismissed in an animated fashion; any intermediate view controllers are simply removed from the stack. The top-most view is dismissed using its modal transition style, which may differ from the styles used by other view controllers lower in the stack.

If you want to retain a reference to the receiver’s presented view controller, get the value in the presentedViewController property before calling this method.

The completion handler is called after the viewDidDisappear: method is called on the presented view controller. Availability

Available in iOS 5.0 and later.
like image 2
Christian David Avatar answered Nov 15 '22 05:11

Christian David