2012-09-28 14 views
23

Ho appena aggiornato iOS 6 ed eseguo il mio vecchio codice, creato in iOS 4.3. Mi danno il numero di avvertimenti nella mia domanda.dismissmodalviewcontrolleranimated è deprecato prima deprecato in ios 6

Ho usato presentModelViewController: e poi mi respingere, ma mi ha dato avviso

dismissModalViewControllerAnimated is deprecated first deprecated in iOS 6.

Perché Mostra avviso a quel codice? Ecco il codice:

[picker dismissModalViewControllerAnimated:YES]; 

Questa riga diventa gialla e mostra l'errore. Per favore, dammi delle linee guida per rimuovere l'avviso.

+2

leggere la documentazione UIViewController , ti diranno cosa usare invece – wattson12

+0

dare il codice di dove crei il 'Picker' ViewController e come :) –

risposta

2

È possibile utilizzare dismissViewControllerAnimated:completion, dalle 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. 
+0

grazie per la difesa, .. funziona bene. posso farti una domanda? perché il loro uso "completamento: completamento (vuoto (^) (vuoto))", – Piyush

+0

è "un blocco chiamato dopo che il controller di visualizzazione è stato chiuso" – ChristianD

59

Ora in iOS 6 È possibile utilizzare

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

Invece di

[[Picker parentViewControl] dismissModalViewControllerAnimated:YES]; 

e

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

Invece di

[self presentModalViewController:picker animated:YES]; 
4

Si dovrebbe ottenere solo l'avviso deprecazione se la destinazione di distribuzione è impostato su iOS 6. Quindi mi sento di controllare la destinazione di distribuzione, che probabilmente è impostato sul valore predefinito Xcode. Una volta che si cambia a 4.3, gli avvisi di deprecazione dovrebbero scomparire.

2

posso cambiare il mio codice

[self dismissModalViewControllerAnimated:YES]; 

a

[self dismissViewControllerAnimated:YES]; 

e ricevere errore: No @interface visibile per 'KLPARewardController' dichiara il selettore 'dismissViewControllerAnimated:'