【问题标题】:Trigger method in parent uiviewcontroller from uibutton in uiscrollview从uiscrollview中的uibutton触发父uiviewcontroller中的方法
【发布时间】:2012-07-31 13:47:13
【问题描述】:

我在 uiviewcontroller 的 uiScrollview 中有一个 uibutton。当我单击按钮时,我希望能够调用 uiviewcontroller 中的方法。

我的按钮上有以下操作,它调用我的 uiscrollview 中的方法:

[categoryButton addTarget:self action:@selector(categoryButtonWasClicked:) forControlEvents:UIControlEventTouchUpInside];

但这只是在我的 uiscrollview 中调用一个方法(我仍然会保留它)。那么如何调用视图控制器中的方法呢?

感谢您提供的任何帮助。

【问题讨论】:

    标签: ios xcode ipad uiviewcontroller uiscrollview


    【解决方案1】:

    enter code here尝试做这样的事情

    #import <UIKit/UIKit.h>
    
    @protocol myUIScrollViewProtocol <NSObject>
    
        -(void)buttonWasPressInScrollView:(id)sender;
    
    @end
    
    @interface MyUIScrollView : UIScrollView
    
    @property (weak, nonatomic)id myDelegate;
    
    @end
    

    创建一个 UIScrollView 的子类并添加一个委托,然后将您的 UIViewController 分配为委托并在其中实现“buttonWasPress..”方法。

    然后从 uiScrollView 中的 categroryButtonWasClicked 方法:

        -(void)categoryButtonWasClicked{
        if ([self.myDelegate respondsToSelector:@selector(buttonWasPressInScrollView:)]){
            [self.myDelegate buttonWasPressInScrollView:self];
        }
    ...
    }
    

    在您的 viewController 的 .h 中添加以下内容

    @interface MyViewController : UIViewController <myUIScrollViewProtocol>
    

    【讨论】:

    • 如何将视图控制器分配为代理?然后我把buttonWasPressInScrollView作为一个方法放到视图控制器里?
    • 如果您以编程方式添加 ScrollView 将其类更改为 MyUIScrol ...输入 [myScrollView setDelegate:self];
    猜你喜欢
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2011-01-06
    • 2016-04-24
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多