我正在创建一个iPhone应用程序。目前我正在显示我的"第一个" 类的UIBarButtonItem,目标为" second" 类,所以我给出了我的UIBarButtonItem动作方法到第二课。它工作正常。
这是我的第一堂课的代码,第二课的目标是" revealController":
UIBarButtonItem *rightRevealButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"MENU"
style:UIBarButtonItemStyleBordered target:revealController action:@selector(rightRevealToggle:)];
这是我的第二课的UIBarButtonItem方法:
- (void)rightRevealToggle:(id)sender
{
[self rightRevealToggleAnimated:YES];
}
现在,我的问题是我在头等舱中显示幻灯片放映图像,所以我需要停止幻灯片放映,当用户点击" rightRevealToggle"即UIBarButtonItem动作方法。如果目标是相同的,那么很容易设置幻灯片停止动作以及UIBarButtonItem动作方法。但在我的情况下,我在头等舱使用幻灯片放映并且没有向第二堂课宣布。
这是我的幻灯片停止方法,我需要在用户点击UIBarButtonItem动作方法时调用
[slideshow stop];
请告诉我一些我可以实现输出的方法。提前谢谢!
答案 0 :(得分:0)
与barbuttonitem初始化一起分配revealController的属性(例如名为FirstController。)
<强> RevealController.h 强>
@property (nonatomic, strong) FirstController *firstController;
<强> FirstController.m 强>
- (void) viewDidLoad () {
....
[revealController setFirstController: self];
....
UIBarButtonItem *rightRevealButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"MENU"
style:UIBarButtonItemStyleBordered target:revealController action:@selector(rightRevealToggle:)];
....
}
<强> RevealController.m 强>
- (void)rightRevealToggle:(id)sender
{
[self rightRevealToggleAnimated:YES];
// call instance method of FirstController
[firstController stopSlideShow]; // this will navigate your pointer to FirstController class where you can access slide show method and properties
}
希望这就是你要找的东西。
答案 1 :(得分:0)
简而言之,你必须在方法rightRevealToggle中获得第一个Class的实例,然后调用[instanceOfFirstClass stop];
说FirstClass的实例(例如:insFirstClass)已被加载到正在播放幻灯片放映的内存中。我假设它有一个在FirstClass.h中声明的stop方法
所以在调用rightRevealToggle的SecondClass中,我假设您的FirstClass实例insFirstClass仍在内存中并运行幻灯片放映方法。
现在你必须访问已经在内存中运行幻灯片放映的FirstClass的insFirstClass实例(例如:你已经在navigationController中推送了这个实例)。
insFirstClass在方法
中的SecondClass中保存之后-(void)rightRevealToggle:(id)sender
{
//your extra logic
//...
//...
FirstClass *insFirstClassInSecondClass = [from navigationcontroller.viewcontrollers or any other blah blah stuff];
[insFirstClassInSecondClass stop];
//your extra logic
//...
//...
}
注意:我希望您能够了解并理解我的答案。如果不是,请告诉我,以便我编辑答案,使其更容易理解。
答案 2 :(得分:0)
使用NSNotificationCenter
在你的viewController1
(我猜你正在开始使用滑块)启动滑块时,你可以添加一个观察者并添加选择器stopSlider
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stopSlider) name:@"stopSliderNotification" object:nil];
并添加名为stopSlider
的选择器-(void)stopSlider{
// Code For Stopping Slider here
}
现在,当您想要停止滑块时,可以从任何其他ViewController发布stopSliderNotification,它将使用以下代码调用stopSlider
的{{1}}选择器
viewController1
这对于这种情况很有效,希望这会有所帮助。