@protocol UISplitViewControllerDelegate
@optional
1、
// Called when a button should be added to a toolbar for a hidden view controller.
// Implementing this method allows the hidden view controller to be presented via a swipe gesture if 'presentsWithGesture' is 'YES' (the default).
- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc;
代理4返回YES时走此方法,一般实现横屏到竖屏动作:
barButtonItem.title = NSLocalizedString(@"Presidents", @"Presidents");
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
self.masterPopoverController = popoverController;
2、
// Called when the view is shown again in the split view, invalidating the button and popover controller.
- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem;
1代理走后又要出现左边导航时调用,一般实现:
[self.navigationItemsetLeftBarButtonItem:nilanimated:YES];
self.masterPopoverController = nil;
3、
// Called when the view controller is shown in a popover so the delegate can take action like hiding other popovers.
- (void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController;
这发生在portrait模式下,用户单击屏幕上方的按钮弹出导航UIPopoverController信息时走此方法。
4、
// Returns YES if a view controller should be hidden by the split view controller in a given orientation.
// (This method is only called on the leftmost view controller and only discriminates portrait from landscape.)
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation NS_AVAILABLE_IOS(5_0);
一般不实现
@end
相关推荐
- 自定义行为:了解如何通过重写UISplitViewController的代理方法来定制自适应行为,比如在不同屏幕尺寸下显示或隐藏特定视图。 4. **实际应用** - 多视图布局:UISplitViewController常用于构建类似邮件、日历等...
通过代理方法,可以在不同设备和屏幕方向下控制主视图和辅助视图的显示。例如,`splitViewController(_:collapseSecondary:onto:)`方法可以控制在缩小屏幕时如何合并主视图和辅助视图。 对于自定义动画和第三方库,...
4. **代理方法**: 通过实现UISearchBarDelegate和UISearchResultsUpdating协议的代理方法,可以监听用户输入并更新搜索结果。比如`searchBar:textDidChange:`方法会在用户输入变化时调用,而`updateSearchResults...
UITableView是iOS中常用的组件,它的功能实现离不开代理方法(delegate methods)和数据源方法(data source methods)。代理方法主要用于处理与用户交互相关的事件,比如返回tableView每行的高度,监听用户的点击...
- 协议是用来定义一组方法的规范,通过 `optional` 关键字标记的方法是可选的,实现方可以选择不实现这些方法。 7. **NSObject 是大多数 Objective-C 类继承的根类,它没有父类**。 - `NSObject` 是Objective-C中...
6. **协议与代理**:CSCustomSplitViewController可能实现了委托协议,允许其他控制器与其通信,比如控制何时显示或隐藏子视图。 7. **代码组织**:良好的代码结构和模块化设计是任何项目的基础。在这个示例中,...
1. **UISplitViewController的基本用法**:了解如何初始化和配置UISplitViewController对象,设置其代理以及与之关联的子控制器。 2. **主-详情视图模式**:学习如何将两个不同的UIViewController子类分别作为主...
OpenFlow库的requestImageForIndex代理方法中,通过NSMutableArray的索引获取具体图片。 OpenFlow编程实现图片分页的功能时,图片的加载和显示需要特别注意,因为它涉及到图片的缩放和内存管理。开发者需要根据具体...
6. **协议和代理**:视图控制器之间通信的一种方式是通过遵循协议并实现代理方法。这使得不同控制器可以相互响应事件,例如表单提交或数据加载完成。 7. **手势识别**:`UIViewController`可以添加手势识别器(如`...
- **代理(Delegation)**:一种设计模式,通过它一个对象可以将某些职责委托给另一个对象来完成。 - **内存管理(Memory Management)**:Objective-C使用引用计数机制来管理内存。开发者需要理解并正确使用retain和...
通过实现这些代理方法,可以精确控制各个视图的显示和隐藏,以及响应用户的交互。 在实际开发中,MGSplitViewController可以无缝集成到Xcode项目中,作为CocoaPods或Carthage依赖引入。这样,你可以轻松地在自己的...
- 通过代理方法监听标签切换:`class CustomTabBarController: UITabBarController, UITabBarControllerDelegate { ... }` - 实现`tabBarController(_:didSelectViewController:)`方法,当用户切换标签时,该方法...
UITableViewController不仅处理数据源和代理方法,还能自动管理其包含的UITableView,简化了开发流程。 首先,我们需要创建一个UITableViewDataSource和UITableViewDelegate。这两个协议定义了如何填充表格视图以及...
3. 实现手势处理:在代理方法中,根据手势的状态计算菜单的偏移量,并相应地更新菜单视图的位置。 4. 页面切换逻辑:当用户选择某个菜单项时,可以使用`pushViewController:animated:`方法将对应的页面推入`...
3. **自定义行为**:开发者可以通过设置和重写各种代理方法来调整分栏视图的行为,比如控制何时显示或隐藏细节视图,以及如何在主副视图间进行切换。 4. **强大的API**:MGSplitViewController提供了丰富的API,使...
如果需要在标签切换时执行特定操作,可以重写`UIViewController`的`tabBarController(_:didSelect:)`方法,或者监听`UITabBarController`的`tabBar(_:didSelect:)`代理方法。 4. **隐藏或显示TabBar** 在某些情况...
同时,导航控制器还允许你通过代理方法或KVO来监听导航栏的动画和状态变化。 在实际应用中,我们经常需要动态地改变导航栏的样式和内容,比如在特定视图控制器中隐藏导航栏、显示或隐藏返回按钮,或者在导航栏上...
这通常通过使用容器视图控制器(Container View Controller)来实现,如UISplitViewController、UIPageViewController或者自定义的容器控制器。在这个"DemoCtrlVCCenter"中,开发者可能创建了一个自定义的视图控制器...
1. 解决滑动冲突:可以通过设置手势识别器的代理方法,根据手势的方向和范围来判断应该响应哪个元素的滑动事件。另外,可以使用` gestureRecognizerShouldBegin`方法来调整滑动手势的启动条件。 2. 优化菜单显示:...
`APSplitViewController`作为主要的控制器,可能会通过代理方法、通知或者闭包来实现子控制器间的通信。 4. **自定义视图(Custom Views)**:为了实现独特的游戏效果,开发者可能会创建自定义的视图类,这些类继承...