2013-02-19 51 views
1

在我的iPad應用程序中。我正在研究UISplitViewController。在UISplitViewControllerDetailViewController有按鈕。當按下該按鈕時,它將導航到另一個視圖控制器。在另一個視圖控制器中,我不需要UISplitViewController。如何解僱UISplitViewController。我嘗試了很多並使用Google搜索,但我沒有找到任何解決方案。這是在浪費我的時間,所以如果有任何人在工作,請指導我併發布示例代碼。如何在按下按鈕時關閉UISplitViewController

我使用這個代碼

-(void)imgButtonpressed:(id)sender 
{ 
    MenuItemsListViewController *menuview=[[MenuItemsListViewController alloc]initWithNibName:@"MenuItemsListViewController" bundle:nil]; 

    menuview.modelArray = imagesArray; 
    menuview.image = [sender tag]*2; 
    [self.navigationController pushViewController:menuview animated:YES]; 

} 

回答

-2

蘋果不希望你拆分視圖控制器推到導航控制器。他們的指導方針指出,如果您使用UISplitViewController,則必須始終在您的應用程序中可見(因此您無法刪除它),除非將其與模態視圖控制器疊加在一起。

如何通過模態呈現您的視圖控制器?

MenuItemsListViewController *menuview=[[MenuItemsListViewController alloc]initWithNibName:@"MenuItemsListViewController" bundle:nil]; 

menuview.modalPresentationStyle = UIModalPresentationFullScreen; 
[self.splitViewController presentViewController:menuview animated:YES completion:nil]; 

來源:How can we push UISplitVIewController to a UINavigationController

-1

與UISplitView工作時,我有同樣的問題。事實上,當我終於想出如何在rootview控制器上推送splitview時,我仍然遇到了問題。

所以,我相信有很多新人在那裏對這個問題感到沮喪。我試圖通過大量閱讀來找出解決方案。

這裏是我做的(你可以做同樣的與任何其他視圖):

這將駁回SPLITVIEW並推動另一個SPLITVIEW:

SplitViewController *split = [[SplitViewController alloc]init]; 
    self.leftController = [[LeftViewController alloc]init]; 
    UINavigationController *leftNav = [[UINavigationController alloc]initWithRootViewController:leftController]; 
    self.rightController = [[RightViewController alloc]init]; 
    UINavigationController *rightNav = [[UINavigationController alloc]initWithRootViewController:rightController]; 
    split.viewControllers = [NSArray arrayWithObjects:leftNav,rightNav, nil]; 
    split.delegate = self.rightController; 

    YourAppDelegate *delegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    delegate.window.rootViewController = split; 

而第二個選項是:

NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers]; 

    [allViewControllers replaceObjectAtIndex:0 withObject:split]; 
    self.navigationController.viewControllers = allViewControllers; 

希望這可以幫助那些遇到同樣問題的人。

乾杯!

相關問題