gpt4 book ai didi

uinavigationcontroller - UISplitView 左侧的多级导航 Controller ,带有一个小扭曲

转载 作者:行者123 更新时间:2023-12-04 08:41:57 24 4
gpt4 key购买 nike

我正在尝试制作与 类似(但不完全类似)的东西电子邮件应用程序 上找到iPad .

具体来说,我想创建一个 基于标签的应用程序 ,但每个选项卡都会向用户显示 不同的 UISplitView .

每个 UISplitView 都包含一个 Master 和一个 Detail View (显然)。

在每个 UISplitView 中,我想要 大师做多级导航 Controller 新的 UIViewControllers 被插入(或弹出)堆栈。 UISplitView 中的这种类型的导航是应用程序类似于 native 电子邮件应用程序的地方。

据我所知,唯一描述一个体面的“uitabbarcontroller 中的splitviewcontroller”的地方是:UISplitViewController in a TabBar ( UITabBarController )?我试图遵循公认的答案。

接受的解决方案似乎对我有用(即,我得到一个标签栏 Controller ,允许我在不同的 UISplitViews 之间切换)。

问题是我不知道如何使 UISplitView 的左侧成为多级导航 Controller 。

这是我在我的应用程序委托(delegate)中使用的代码,用于创建初始的“标签栏 Controller 内部的 Split View”(这与上述链接中的建议非常相似)。

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

NSMutableArray *tabArray = [NSMutableArray array];

NSMutableArray *array = [NSMutableArray array];
UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
MainViewController *viewCont = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
[array addObject:viewCont];
[viewCont release];
viewCont = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
[array addObject:viewCont];
[viewCont release];
[splitViewController setViewControllers:array];
[tabArray addObject:splitViewController];
[splitViewController release];



array = [NSMutableArray array];
splitViewController = [[UISplitViewController alloc] init];
viewCont = [[Master2 alloc] initWithNibName:@"Master2" bundle:nil];
[array addObject:viewCont];
[viewCont release];
viewCont = [[Slave2 alloc] initWithNibName:@"Slave2" bundle:nil];
[array addObject:viewCont];
[viewCont release];
[splitViewController setViewControllers:array];
[tabArray addObject:splitViewController];
[splitViewController release];

// Add the tab bar controller's current view as a subview of the window
[tabBarController setViewControllers:tabArray];

[window addSubview:tabBarController.view];
[window makeKeyAndVisible];

return YES;
}

类(class) 主视图 Controller 是一个 UIViewController 包含以下方法:
- (IBAction)push_me:(id)sender {
M2 *m2 = [[[M2 alloc] initWithNibName:@"M2" bundle:nil] autorelease];
[self.navigationController pushViewController:m2 animated:YES];
}

此方法(通过界面生成器)附加到 MainViewController.xib 中的 UIButton
显然,上面的方法 (push_me) 应该创建第二个 UIViewController(称为 m2)并在按下 UIButton 时将 m2 推送到 Split View左侧的 View 中。
然而,当按钮被按下时它什么也不做(即使我可以告诉这个方法被调用了)。

想想我哪里出错了?

蒂亚!

最佳答案

你确定 MainViewController 是 UINavigationController 的子类吗?

如果您希望能够推送/弹出 Controller ,那么 mainViewController 应该是一个导航 Controller (或子类),然后您可以将 Controller (例如 TableViewControllers)推送到它上面。您可以在默认的 splitView 项目中看到此结构(打开 IB 并检查 View )。

这是一个关于 UISplitViewController 的不错的教程:http://mobiforge.com/developing/story/developing-split-view-based-apps-ipad

关于uinavigationcontroller - UISplitView 左侧的多级导航 Controller ,带有一个小扭曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com