将另一个 UIViewController 的视图放在“主”UIViewController 中——委托方法
Posted
技术标签:
【中文标题】将另一个 UIViewController 的视图放在“主”UIViewController 中——委托方法【英文标题】:Putting another UIViewController's view within a "main" UIViewController -- delegate methods 【发布时间】:2012-02-10 23:01:09 【问题描述】:我正在尝试制作一个与 iPhone 上的 iCal 应用程序非常相似的应用程序。
为此,我还集成了 2 个开源项目 Kal (https://github.com/klazuka/Kal) 和 GuiCocoa/Calendar (https://github.com/guicocoa/calendar)作为我自己编码的“列表”视图片段。
我决定,因为我需要嵌套在 UINavigationController 堆栈中的所有内容,所以将这 3 个单独的项目实现为一种事物的最佳方法是,我将创建类似于 UITabBarController 的东西(其中你有 1 个 UIViewController 类,其中存储并嵌套其他 UIViewControllers - 但是,我想使用带有 UISegmentedControl 的自定义 UIToolbar 在不同的视图控制器之间进行委托)。
所以我遇到的最重要的问题是行动的错误授权。例如:
如果我要单击其中一个网格日期,则会返回错误:
-[UINavigationButton didSelectDate:]: unrecognized selector sent to instance 0x6c1aba0
或类似的东西。
也许我的问题应该是:是否有一个 UITabBarController 的“子类”,我可以实现自己的 UIToolbar,而不是官方的 UITabBar 等?
如果没有,有没有办法指定“子视图”中的所有点击都被委派给子视图内的函数?
谢谢, rnc505
【问题讨论】:
【参考方案1】:首先你可以继承一个 UIToolBar 来自定义它。
#import <Foundation/Foundation.h>
@interface CustomToolBar : UIToolbar
@end
#import "CustomToolBar.h"
@implementation CustomToolBar
@end
而不是调用:
UIToolbar *toolbar = [[UIToolBar alloc] init];
你打电话
CustomToolbar *toolbar = [[CustomToolbar alloc] init]
您的另一个选择是根据需要更改按钮的委托。
【讨论】:
以上是关于将另一个 UIViewController 的视图放在“主”UIViewController 中——委托方法的主要内容,如果未能解决你的问题,请参考以下文章
父 UIViewController 调整容器视图大小时,子视图控制器不自动布局