Ciao ragazzi, è da un po che sto studiano l'Objectiv - C. allora ho queste righe di codice:

codice:
     
        case FBSessionStateOpen: {
            UIViewController *topViewController =[self.navController topViewController];
            if ([[topViewController presentedViewController] isKindOfClass:[FCLogInViewController class]]) {
                //rimuovo l'attuale view e ritorno alla precdente attraverso una animazione
                [topViewController dismissViewControllerAnimated:YES completion:nil];
            }
        }
quello che non mi risulta chiaro sono queste righe di codice:

codice:
            if ([[topViewController presentedViewController] isKindOfClass:[FCLogInViewController class]]) {
                //rimuovo l'attuale view e ritorno alla precdente attraverso una animazione
                [topViewController dismissViewControllerAnimated:YES completion:nil];
            }
dentro l'if cosa vado a fare esattamente? da quello che ho capito presentedViewController è un metodo che serve per mostrare l'ultimo oggetto dello stack delle view che dovrebbe essere appunto tovViewController, inoltre prima di effettuare questo metodo, vado a fare l'introspezione verificando che la classe sia di tipo FCLogInViewController, ma precisamente quale classe andiamo a verificare che si di tipo: FCLogInViewController?.
Una volta effettuato questa riga di codice, sotto nella riga
codice:
 topViewController dismissViewControllerAnimated:YES completion:nil
che cosa vado a fare? se non sbaglio sbaglio vado a togliere dallo stack la view che attualmente è in cima allo stack, ovvero quella che ho caricato nella linea di codice precedente giusto?
ovviamente ho letto la documentazione dei metodi, ma non si capisce gran che!
grazie a tutti
Marco