2013-07-19 26 views
1

我與splitViewController多detailViewController ipad上它的工作很好,但我想,當登錄按鈕用戶點擊進入LoginScreen那麼當在按鈕符號點擊登錄屏幕則應重新加載整個splitViewController並顯示第一個屏幕而不是顯示的地方,我們在這裏點擊登錄按鈕,屏幕是我的代碼如何加載SplitViewController的第一觀點在iPad應用程序

 - (void) loginPressed 
    { 
LoginViewController *targetController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 
targetController.modalPresentationStyle = UIModalPresentationFullScreen; 

    [self.splitViewController presentViewController:targetController animated:YES completion:nil]; 
} 

}   

這裏是登錄按鈕登錄視圖控制器代碼

   [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadRoot" object:self]; 

    FirstDetailViewController*targetController=[[FirstDetailViewController alloc]init]; 

    [self.splitViewController pushViewController:targetController animated:YES] ; 

ñ應用程序委託中的通知代碼。

-(void)actionNotificationData:(NSNotification *)notification { 



    [email protected]"No"; 


    self.window.rootViewController=splitViewController; 
    } 

這裏是我的RootViewController的是的tableView是SPLITVIEW電腦板代碼,當我們在任何細胞移動集團公司以新的觀點

[self.appDelegate.splitViewController viewWillDisappear:YES]; 
NSMutableArray *viewControllerArray=[[NSMutableArray alloc] initWithArray:[[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] viewControllers]]; 
[viewControllerArray removeLastObject]; 


if (row == 0) { 


    self.firstDetailViewController=[[[FirstDetailViewController alloc] init]autorelease]; 
    [viewControllerArray addObject:self.firstDetailViewController]; 
    self.appDelegate.splitViewController.delegate = self.firstDetailViewController; 







    } 

if (row == 1) { 



    self.secondDetailViewController=[[[SecondDetailViewController alloc]init]autorelease]; 
    [viewControllerArray addObject:self.secondDetailViewController]; 
    self.appDelegate.splitViewController.delegate = self.secondDetailViewController; 
} 

if (row == 2) { 
    self.myLearningViewController=[[[MyLearningViewController alloc]init]autorelease]; 
    [viewControllerArray addObject:self.myLearningViewController]; 
    self.appDelegate.splitViewController.delegate = self.myLearningViewController; 
} 


if (row == 3) { 
    self.communityViewController=[[[CommunityViewController alloc]init]autorelease]; 
    [viewControllerArray addObject:self.communityViewController]; 
    self.appDelegate.splitViewController.delegate = self.communityViewController; 
} 


if (row == 4) { 
    self.reportsViewController=[[[ReportsViewController alloc]init]autorelease]; 
    [viewControllerArray addObject:self.reportsViewController]; 
    self.appDelegate.splitViewController.delegate = self.reportsViewController; 
} 




if (row == 5) { 


    self.walkInViewController=[[[WalkInViewController alloc]init]autorelease]; 

    [viewControllerArray addObject:self.walkInViewController]; 

    //self.appDelegate.splitViewController.delegate = self.secondDetailViewController; 

    self.appDelegate.splitViewController.delegate = self.walkInViewController; 


} 

if (row == 6) { 


    self.postDataViewController=[[[PostDataViewController alloc]init]autorelease]; 

    [viewControllerArray addObject:self.postDataViewController]; 


    self.appDelegate.splitViewController.delegate = self.postDataViewController; 


} 



[[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] setViewControllers:viewControllerArray animated:NO];  


[self.appDelegate.splitViewController viewWillAppear:YES]; 
[viewControllerArray release]; 


} 
+0

拆分視圖控制器不能做一推,只有導航控制器能去做。你登錄後,你需要關閉該LoginViewController,不做一推。 – rdelmar

+0

,如果我解僱loginViewController然後將其移動到從它按下如何調用視圖第一 – user2240329

+0

目前還不清楚是否有什麼地方控制器的看法。演示之前屏幕上的內容是什麼? – rdelmar

回答

0

這是一個有點難以回答這個沒有更多的信息你如何」在多個詳細視圖控制器之間重新移動。我假設你正在做的是通過具有嵌入在導航控制器細節控制器,做push和pop。

如果是這樣的設置,那麼你不應該ALLOC init'ing一個FirstDetailViewController,然後推動它。如果FirstDetailViewController是屏幕上的第一,那麼你推到第二個,最後提出從那裏LoginViewController,你應該做這樣的事情:

- (IBAction)signInButtonClicked{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadRoot" object:self]; 

    UINavigationController *nav = [(UISplitViewController *)self.presentingViewController viewControllers][1] 
    [nav popToRootViewControllerAnimated:NO]; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
相關問題