Odpowiedz na ten temat
Pokaż wyniki od 1 do 10 z 10
  1. Avatar Bananera
    Dołączył
    Oct 2010
    Skąd
    Szczecin
    Postów
    198

    Cytuj | #1

    Witam serdecznie,
    Mam mały problem z metodą popToRootViewController. Nic się nie crashuje, ale ekran wygląda tak: Zrzut ekranu 2011-10-06 (godz. 10.58.37).png

    Oto parę linijek kodu:

    metoda klasy DataManager która ma powodować cofnięcie się do root'a po wywołaniu działań.
    Kod:
    - (void) updateDatabase
    {
        (.....)
        AppDelegate *appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate; 
        [appDelegate.navigationController  popToRootViewControllerAnimated:YES];
    }
    delegate
    Kod:
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
        
        if (_rootViewController == nil) {
            _rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];
        }
        
        _navigationController = [[UINavigationController alloc] initWithRootViewController:_rootViewController];
        _navigationController.navigationBar.hidden = YES;
    
        [self.window addSubview:_navigationController.view];
        [self.window makeKeyAndVisible];
        return YES;
    }
    A tutaj jeszcze zamieszczam viewDidAppear klasy RootViewController:
    Kod:
    - (void) viewWillAppear:(BOOL)animated
    {
        if([[User sharedInstance] getEmail] == nil)
        {
            if (_registerViewController == nil) {
                _registerViewController = [[RegisterViewController alloc] initWithNibName:@"RegisterViewController" bundle:[NSBundle    mainBundle]];
            } 
            
            if (_registerNavController == nil) {
                _registerNavController = [[UINavigationController alloc] initWithRootViewController:_registerViewController];
            }
            _registerNavController.navigationBarHidden = YES;
            
            [self.navigationController presentModalViewController:_registerNavController animated:YES];
            return;
        }
        
        if (_listViewController == nil) {
            _listViewController = [[ListViewController alloc] initWithNibName:@"ListViewController" bundle:[NSBundle mainBundle]];
        }
        
        [self.navigationController pushViewController:_listViewController animated:YES];
    
    }
    Ktokolwiek ma jakiś pomysł?

    Pozdrawiam!
    Arek
    Komputer:  MacBook Białas 13" :)
    Telefon:  iPhone 3g 8Gb
    Odtwarzacz:  iPhone 3g 8Gb
    Tablet:  iPad 16gb WiFi
    Zapraszam na MacWyznawca.pl


  2. aLP
    Mężczyzna aLP jest offline
    Avatar aLP
    Dołączył
    Jun 2010
    Skąd
    52.229797,21.011781
    Postów
    83

    Cytuj | #2

    spróbuje tak
    Kod:
    [self.navigationController  popToRootViewControllerAnimated:YES];

  3. Avatar Bananera
    Dołączył
    Oct 2010
    Skąd
    Szczecin
    Postów
    198

    Cytuj | #3

    @aLP: Sprawdzałem. Nie działa.
    Komputer:  MacBook Białas 13" :)
    Telefon:  iPhone 3g 8Gb
    Odtwarzacz:  iPhone 3g 8Gb
    Tablet:  iPad 16gb WiFi
    Zapraszam na MacWyznawca.pl

  4. Avatar wojtkow SM? Tylko S...


    Dołączył
    May 2007
    Skąd
    Poznań
    Postów
    3,620

    Cytuj | #4

    Jako, że nie ma całego kodu to zapytam o najprostsze: masz powiązanie (getter) między property rootViewController Twojego obiektu UIApplication a zmienną jego zmienną lokalną _rootViewController?
    Komputer: MBA 11.6" i7 1.8GHz 4GB RAM 256GB SSD, iMac 27" i7 2.8GHz 8GB RAM 240 GB SSD + 1 TB HDD
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4
    Tablet: iPad (2012) 4G, iPad WiFi
    Moje programy w AppStore:
    iOS => Project Planner | Project Planner HD
    OSX => Project Planner Viewer
    Zgodnie z regulaminem nie udzielam porad poprzez PW - masz pytanie, pytaj na forum.

  5. Avatar Bananera
    Dołączył
    Oct 2010
    Skąd
    Szczecin
    Postów
    198

    Cytuj | #5

    Kod:
    @synthesize rootViewController          = _rootViewController;
    To miałeś na myśli?

    Hmm... Warto pewnie wspomnieć że pracuje na SDK5 teraz. Może w tym leży problem?
    Komputer:  MacBook Białas 13" :)
    Telefon:  iPhone 3g 8Gb
    Odtwarzacz:  iPhone 3g 8Gb
    Tablet:  iPad 16gb WiFi
    Zapraszam na MacWyznawca.pl

  6. Avatar wojtkow SM? Tylko S...


    Dołączył
    May 2007
    Skąd
    Poznań
    Postów
    3,620

    Cytuj | #6

    Tak, to, zastanawiałem się czy czasami nie jest tak, że tworzysz _rootViewController a odczytujesz nil'owe, nie związane z poprzednim, rootViewController.
    Komputer: MBA 11.6" i7 1.8GHz 4GB RAM 256GB SSD, iMac 27" i7 2.8GHz 8GB RAM 240 GB SSD + 1 TB HDD
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4
    Tablet: iPad (2012) 4G, iPad WiFi
    Moje programy w AppStore:
    iOS => Project Planner | Project Planner HD
    OSX => Project Planner Viewer
    Zgodnie z regulaminem nie udzielam porad poprzez PW - masz pytanie, pytaj na forum.

  7. Avatar Bananera
    Dołączył
    Oct 2010
    Skąd
    Szczecin
    Postów
    198

    Cytuj | #7

    Jakieś inne pomysły?
    Komputer:  MacBook Białas 13" :)
    Telefon:  iPhone 3g 8Gb
    Odtwarzacz:  iPhone 3g 8Gb
    Tablet:  iPad 16gb WiFi
    Zapraszam na MacWyznawca.pl

  8. Avatar wezuwiusz
    Dołączył
    Feb 2008
    Skąd
    Dublin, Katowice
    Postów
    783

    Cytuj | #8

    1 - jezeli pracujesz na 5-ce to lepiej zamiast self.window addSubview... uzyj self.window setRootViewController.... , bo jezeli uzywasz ARC to view zostanie dodany, ale sam controller zreleasowany. (w zaleznosci jaki masz przypisany _rootViewController)
    2 - wydaje mi sie tez ze dodanie controllerow do stacka w 'viweWillAppear' moze powodowac problem, bo dodajesz view controllera do nieistniejacego jeszcze viewa (czyli do nila) , wiec albo skonfigurujesz self.view w metodzie 'viewWillAppear' przed dodaniem kontrolerow (self.view = [[uiview alloc] init....blabla] ), albo wrzucisz cala metode do viewDidAppear

    to takie sugestie na szybko, bez zaglebiania sie w detale.
    Komputer:  iMac 27"  iPhone4  iPad tv² +
    WWW: http://www.tridrops.com
    ____________________________/"'\,,, WezUwiUsz_
    Moja strona na FB
    Moje aplikacje: Easy Cash, Dock Clock, Flat Cube, Crazy Emoji

  9. Avatar Bananera
    Dołączył
    Oct 2010
    Skąd
    Szczecin
    Postów
    198

    Cytuj | #9

    Dzięki za odpowiedź. Zaraz odpalam xCode i sprawdzam czy to pomoże
    Komputer:  MacBook Białas 13" :)
    Telefon:  iPhone 3g 8Gb
    Odtwarzacz:  iPhone 3g 8Gb
    Tablet:  iPad 16gb WiFi
    Zapraszam na MacWyznawca.pl

  10. Avatar Bananera
    Dołączył
    Oct 2010
    Skąd
    Szczecin
    Postów
    198

    @Wezuwiusz: Strzał w dziesiątkę! Dzięki za pomoc 
    Komputer:  MacBook Białas 13" :)
    Telefon:  iPhone 3g 8Gb
    Odtwarzacz:  iPhone 3g 8Gb
    Tablet:  iPad 16gb WiFi
    Zapraszam na MacWyznawca.pl

Odpowiedz na ten temat