我正在构建我的第一个iPad应用程序.我的一个要求是处理UISplitviewcontroller和UINavigationController.
我们提出的视图层次结构是
(LoginView) - > UINavigationView(LandingView + CollectionView) - > UISplitViewcontroller(DetailsView).
我们的应用程序仅支持横向模式
我指的是这个SO问题(以及GILT应用程序),作为newbi,我很难根据该描述完成它.
所以我的问题是
1)如果有人可以提供小代码片段或参考教程,我怎么能实现同样的事情
2)根据Apples HIG,UISplitviewcontroller应该是rootviewcontroller,如果不是.Apple会拒绝我的应用程序吗(显然GILT小组已被批准)
3)我找到了MGSplitViewController,我可以使用那个不是root吗?
任何帮助,将不胜感激.作为newbi,我希望我的问题是真实的
刚刚开始使用Swift,并希望复制标准Apple'Notes'应用程序中的一些功能.特别是在横向模式下在iPad上显示在详细信息视图中的"展开"按钮.
即
我最接近的(作为一个简单的快速解决方案)是将以下内容添加到AppDelegate中:
splitViewController.preferredDisplayMode = .primaryOverlay
Run Code Online (Sandbox Code Playgroud)
但是,虽然这允许以横向方向切换主视图(类似于默认的肖像行为),但它可以使用主视图作为弹出框/覆盖图完成.然而,我更喜欢Notes应用程序中存在的行为,即主视图滑入/滑出(不覆盖详细视图).
编辑:也对在iPad上仅在横向模式下显示相应按钮感兴趣.
任何帮助将不胜感激!谢谢
我有一个UISplitViewController
主控制器和细节控制器:
MyMasterController *masterViewController = [[[MyMasterController alloc] initWithDirectory:directoryElement] autorelease];
MyDetailController *detailViewController = [[MyDetailController alloc] init];
masterViewController.detailViewController = detailViewController;
UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = @[[[UINavigationController alloc] initWithRootViewController:masterViewController], [[UINavigationController alloc] initWithRootViewController:detailViewController]];
splitViewController.delegate = self;
Run Code Online (Sandbox Code Playgroud)
该MyDetailController
是表列表视图控制器,我想掌握视图控制器运行的一种方法,当用户单击单元格,那么如何获得详细控制器主控制器?
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[master some_method]; // how to get ?
}
Run Code Online (Sandbox Code Playgroud) 每当用户在iPad的UIsplitView中从横向视图切换到纵向视图时,我想使popover视图可见.虽然用户可以通过单击栏按钮使其可见但我希望这是自动纵向模式.
我有一个使用splitView的xcode6项目.所以现在我想在detailView中更改"主按钮"的标题.这里有两种不同的方法.此方法在detailViewController中实现,并从MasterViewController调用.
- (void)changeMasterButtonTitle:(NSString *)masterButtonTitle {
self.navigationItem.leftBarButtonItem.title = masterButtonTitle;
}
- (void)changeMasterButtonTitle:(NSString *)masterButtonTitle {
self.splitViewController.displayModeButtonItem.title = masterButtonTitle;
}
Run Code Online (Sandbox Code Playgroud)
如果我以ipad的肖像模式启动应用程序,标题已更改.但是,如果我展开masterView,之后我崩溃了,标题已经变回"Master".我不知道这会发生在何处以及如何发生.我怎样才能永久更改标题?是否有一些委托方法可供使用?
我正在使用拆分视图模板来创建一个简单的拆分视图,当然在纵向模式下有一个弹出窗口.我正在使用模板生成的默认代码,添加/删除工具栏项并设置弹出控制器并将其删除.这两个方法是splitViewController:willShowViewController:...和splitViewController:willHideViewController:...
我试图弄清楚如果用户在显示弹出窗口时点击工具栏按钮,弹出窗口就会消失.如果你点击弹出窗口外的任何地方,你可以使弹出窗口消失而不选择项目,但如果用户再次点击按钮我也想让它消失.
我被困的地方就是:似乎没有一种明显的,简单的方法来挂钩工具栏按钮的动作.我可以使用调试器告诉我在按钮上调用的操作是showMasterInPopover.我承认,我不熟悉以编程方式与选择器合作.
我可以以某种方式编写一个动作并将其设置在工具栏上,而不会覆盖已存在的动作吗?例如,添加一个调用现在那个的动作?或者我是否必须编写一个动作来显示/隐藏自己的弹出窗口(现在可能是由分割视图控制器在幕后进行的行为???).
或者我错过了一种简单的方法来将此行为添加到此按钮而不更改为我设置的现有行为?
谢谢!
我正在尝试更新splitViewController中的detailView.这是我尝试的:
//Get the application delegate
AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
//Get the masterViewController
MasterViewController *master = [delegate.splitViewController.viewControllers objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
到目前为止,这似乎工作正常.然后我尝试通过执行以下操作更新detailViewController中的标签:
master.detailViewController.myLabel.text = @"someText";
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
那么如何正确访问detailView中的出口?
感谢帮助.
I have a home page and when a certain button is pressed, it takes you to a split view with a table on the left (master) side and a view showing details on the right (detail) side. The app is working fine on the simulator, but when I run on my iPad mini I get an error.
When the user clicks on a table cell in the left (master) view, I call:
DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"detailViewController"];
detail.jobInfo = [_fetchedResultsController …
Run Code Online (Sandbox Code Playgroud) xcode uisplitview uisplitviewcontroller ios uisplitviewdelegate
uisplitview ×8
ios ×3
ipad ×3
cocoa-touch ×1
ios8 ×1
objective-c ×1
popover ×1
swift ×1
xcode ×1
xcode6 ×1