【问题标题】:Putting another UIViewController's view within a "main" UIViewController -- delegate methods将另一个 UIViewController 的视图放在“主”UIViewController 中——委托方法
【发布时间】:2026-01-24 20:25:02
【问题描述】:

我正在尝试制作一个与 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

【问题讨论】:

    标签: ios delegates calendar uitabbarcontroller uitoolbar


    【解决方案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]
    

    您的另一个选择是根据需要更改按钮的委托。

    【讨论】:

      最近更新 更多