ipad – UISplitViewcontroller,带有主UINavigationController和详细信息UINavigationController

ipad – UISplitViewcontroller,带有主UINavigationController和详细信息UINavigationController,第1张

概述我们在UISplitViewController应用程序中需要一些特定的行为.我们有3个视图的以下层次结构 > FormOneViewController – 在MasterView中初始化的TableViewController > FormTwoViewcontroller – TableViewCotnroller informaised in detailView > FormThreeV 我们在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堆栈.

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

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

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

解决方法 是的,你可以这样做,但你需要为主人和细节创建单独的视图控制器
创建新项目作为拆分视图控制器并从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.@R_419_6823@barbuttonItem=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];}

并用于d出视图控制器

-(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所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1081267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存