HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ipad – UISplitViewcontroller,带有主UINavigationController和详细信息UINavigationController大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在UISplitViewController应用程序中需要一些特定的行为.我们有3个视图的以下层次结构

> FormOneViewController – 在MasterView中初始化的TableViewController
> FormTwoViewcontroller – TableViewCotnroller informaised in detailView
> FormThreeViewcontroller – 尚未显示.

用户在FormTwoViewController中选择一个项目时,我们希望FormThreeViewCOntroller出现在detailView中,而FormTwoViewController(当前的详细信息视图)将成为masterView.

我们还需要在详细视图上有一个后退按钮来返回视图控制器的堆栈.因此,当按下后退时,FormTwoViewController将成为detailView,FormOneViewController将再次成为主视图.

我们尝试使用UISPlitViewcontroller以及masterNavigationController和detailNavigationController来实现它.我们有初始阶段工作,在应用程序启动时正确显示视图,我们选择FormTwoViewController项,它将FormThreeViewController推送到detailNavigationController,FormTwoViewController被推送到masterNavigationController堆栈.

我们现在面临的问题是双重的

>当在详细视图控制器中按下后退按钮时,它什么都不做.似乎处理程序已经断开连接或其他东西.
>我们没有在纵向模式下获得按钮以在弹出窗口中显示主视图.

有没有人有任何如何做到这一点或任何帮助的例子,我们将不胜感激.

解决方法

是的,你可以这样做,但你需要为主人和细节创建单独的视图控制器
创建新项目作为拆分视图控制器并从xib中删除拆分视图,以便我们从代码创建拆分视图.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after app launch.
    self.splitViewController =[[UISplitViewController alloc]init];
    self.rootViewController=[[RootViewController alloc]init];
    self.detailViewController=[[DetailViewController alloc]init];

    UINavigationController *rootNav=[[UINavigationController alloc]initWithRootViewController:rootViewController];
    UINavigationController *detailNav=[[UINavigationController alloc]initWithRootViewController:detailViewController];

    // Add the split view controller's view to the window and display.
    self.splitViewController.viewControllers=[NSArray arrayWithObjects:rootNav,detailNav,nil];
    self.splitViewController.delegate=detailViewController;
    [self.window addSubview:self.splitViewController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

其中rootviewcontroller是你的形式一个,详细视图控制器是你的形式二.

详细视图控制器即ur表单两个创建类变量
SplitViewAppDelegate * appDelegate; // id ur app delegate变量
设置属性并合成它.

然后以你的形式两个

- (void)viewDidLoad {
self.appDelegate = (SplitViewAppDelegate *)[[UIApplication sharedApplication] delegate];
}

最后在推动你的形式三

- (IBACtion)pushViewController:(id)sender{
    NSLog(@"%@",self.appDelegate.splitViewController.viewControllers);
    RootLevel1 *rootLevel1 =[[RootLevel1 alloc]init];//create form 1 root vc and assign form 1 vc
    DetailLevel1 <UISplitViewControllerDelegate>*detailLevel1=[[DetailLevel1 alloc]init];

    UIBarButtonItem *BACkButton = [[UIBarButtonItem alloc] 
                                   initWithtitle: @"Home" 
                                   style:UIBarButtonItemStylePlain 
                                   target:self 
                                   action:@SELEctor(homE)];
    rootLevel1.navigationItem.leftBarButtonItem=BACkButton;
    [self.appDelegate.splitViewController viewWillDisappear:YES];
    [[self.appDelegate.splitViewController.viewControllers objectATindex:0] pushViewController:rootLevel1 animated:YES];
    [[self.appDelegate.splitViewController.viewControllers objectATindex:1] pushViewController:detailLevel1 animated:YES];
    self.appDelegate.splitViewController.delegate = detailLevel1;
    [self.appDelegate.splitViewController viewWillAppear:YES];

}

并用于弹出视图控制器

-(void)home {
    [self.splitViewController viewWillDisappear:YES];
    [[self.appDelegate.splitViewController.viewControllers objectATindex:0]popViewControllerAnimated:YES];  
    [[self.appDelegate.splitViewController.viewControllers objectATindex:1]popViewControllerAnimated:YES];  
    UIViewController <UISplitViewControllerDelegate>*viewController=[[self.appDelegate.splitViewController.viewControllers objectATindex:1] visibleViewController];
    self.splitViewController.delegate=viewController;   
    [self.splitViewController viewWillAppear:YES];

}

相应地设置你的splitview delgeate.

大佬总结

以上是大佬教程为你收集整理的ipad – UISplitViewcontroller,带有主UINavigationController和详细信息UINavigationController全部内容,希望文章能够帮你解决ipad – UISplitViewcontroller,带有主UINavigationController和详细信息UINavigationController所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。