7

dismissModalViewControllerAnimated is deprecated:first deprecated in iOS 6.0

  • My deployment target is 6.1 and Xcode is 5.1.
  • I want to remove this warning for 6.1 simulator.Is that Possible?????
  • If I will run that by selection in ios 5.1 then no warning.
mokagio
  • 14,681
  • 3
  • 45
  • 52
Jayaprada
  • 934
  • 8
  • 11
  • Possible duplicate ---> http://stackoverflow.com/questions/12445190/dismissmodalviewcontrolleranimated-deprecated – Maverick May 20 '14 at 10:21
  • possible duplicate of [Suppressing deprecated warnings in Xcode](http://stackoverflow.com/questions/2622017/suppressing-deprecated-warnings-in-xcode) – mylogon Jun 15 '15 at 21:10

4 Answers4

33

If I am correct, you simply want to suppress the warnings.

#pragma GCC diagnostic ignored "-Wdeprecated-declarations"

This is simply to suppress the warnings. In release builds, you should not use any deprecated functions.

EDIT: To suppress specific code that invokes warnings, use :

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"

    [self dismissModalViewControllerAnimated:YES];

#pragma clang diagnostic pop
n00bProgrammer
  • 4,231
  • 3
  • 31
  • 60
2

@n00bProgrammer thanks for your answer.

For those of us who still have code that supports earlier versions of iOS, the way I handle such old code is to wrap the older code in a version macro test as well as to suppress the compiler warnings that result.

Note that sometimes a deprecated item generates an implicit conversion warning that needs to be suppressed using "-Wconversion".

    if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
        #pragma clang diagnostic push
        #pragma clang diagnostic ignored "-Wdeprecated-declarations"
        #pragma clang diagnostic ignored "-Wconversion"
        [controlCenter.label setLineBreakMode:UILineBreakModeWordWrap];
        #pragma clang diagnostic pop
    } else {
        [controlCenter.label setLineBreakMode:NSLineBreakByWordWrapping];
    }

You can find the version checker for older Objective-C code here: SYSTEM_VERSION_LESS_THAN()

You can find the version checker for new Swift and Objective-C code here: Swift and Objective-C version check past iOS 8

Community
  • 1
  • 1
neoscribe
  • 1,943
  • 1
  • 19
  • 16
1

use

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

or

[self presentModalViewController:loginController animated:YES];

or

[self dismissViewControllerAnimated:NO completion:nil];
Anbu.Karthik
  • 80,161
  • 21
  • 166
  • 138
0

use thus the following code it works perfect

[self dismissViewControllerAnimated:YES completion:nil];

Tested and working fine.

:)

Prabhu Natarajan
  • 859
  • 1
  • 9
  • 13