gpt4 book ai didi

iphone - 如何在所有 View Controller 中调用同一个方法?

转载 作者:行者123 更新时间:2023-11-29 04:06:14 25 4
gpt4 key购买 nike

如何在所有 View Controller 中调用同一个方法?

viewcontroller1 中的一个方法,例如,

- (void)doSearch
{
NSLog(@"Search..!");
}

我想从 viewcontroller2、viewcontroller3、viewcontroller4、viewcontroller5 等调用 doSearch 方法

如何做到这一点?

最佳答案

您可以在单独的类中声明它并在所有 viewController 中实例化该类,或者您可以在 AppDelegate 中定义此方法并调用所有 viewController。您可以通过像这样获取实例来访问 ViewController 中的 AppDelegate

self.appDelegate=(AppDelegate*)[[UIApplication sharedApplication]delegate];

最后调用这样的方法

[self.appDelegate doSearch];

通常,最好在单独的类中声明通过应用程序共享的所有方法或数据并使用此类。我通常在应用程序中使用 singelton 对象类,定义其中的所有共享数据,最后在所有类中访问

这是 singleton 类的示例

MyData.h

@interface MyData : NSObject

+(MyData*)getInstance;
-(void)search;

@end

MyData.m

#import "MyData.h"

@implementation MyData



static MyData *instance =nil;

+(MyData *)getInstance
{

@synchronized(self)
{
if(instance==nil)
{

instance= [[MyData alloc]init];
}
}
return instance;
}

-(void)search {
NSLog(@"search");
}

@end

终于在你的viewController

  MyData *myData=[MyData getInstance];
[myData search];

关于iphone - 如何在所有 View Controller 中调用同一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15157959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com