在我的应用中有两种观点。 view1有一个功能测试
-(void) testing
{
NSLog(@"Testing : %d", (++x));
}
和计时器
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(testing) userInfo:nil repeats:YES];
我想要的是从view2停止并运行此计时器。怎么做?
答案 0 :(得分:5)
在AppDelegate中定义计时器,
@interface TimerDemoAppDelegate : NSObject <UIApplicationDelegate>
{
NSTimer *timer;
}
@property (nonatomic, retain) NSTimer *timer;
@end
通过创建TimerDemoAppDelegate对象,在两个视图中使用timer 在你的视图中.h文件
@interface View1 : UIViewController
{
TimerDemoAppDelegate *appDelegate;
}
在您的视图中.m文件
appDelegate=(TimerDemoAppDelegate *)[[UIApplication sharedApplication] delegate];
现在使用计时器作为appDelegate.timer。
答案 1 :(得分:0)
将timer2
添加到您的View2
班级
@interface View2 : UIView{
NSTimer *timer2;
}
@property (nonatomic,retain) NSTimer *timer2;
@end
@implementation View2
@synthesize timer2;
@end
并且喜欢这个
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(testing) userInfo:nil repeats:YES];
view2.timer2 = timer;
答案 2 :(得分:0)
使用NSNotificationCenter
,您可以从另一个视图调用方法,而无需创建任何对象。
在viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(button:)
name:@"Next"
object:nil];
-(void)button:(NSNotification *) notification
{
// write a code of timer here.....
}
//call this following from another view
[[NSNotificationCenter defaultCenter]
postNotificationName:@"Next"
object:self];
享受此代码....