我有2个不同的按钮,可以在单个mapview中触发不同的注释集。我有一些淡出按钮的动作方法,在这一点上应该出现一个注释,但是我无法弄清楚如何在注释方法中说“如果激活了这个动作,那么从这个类加载注释”。所以这是我目前的代码
- (void)queryForAllPostsNearLocation:(CLLocation *)currentLocation withNearbyDistance:(CLLocationAccuracy)nearbyDistance {
if (????? IBAction 1 is activated ?????) {
NSString *button1 = @"Today";
}
if (????? IBAction 2 is activated ?????) {
NSString *button1 = @"Tomorrow";
}
PFQuery *query = [PFQuery queryWithClassName:button1];
我希望我能正确地传达我的问题,有人可以帮助我。
答案 0 :(得分:6)
如果你问的是我认为你在问什么,而且“激活”你的意思是“已被触动”/“已被选中”,你就会倒退。不要检查是否在queryForAllPostsNearLocation
方法中选择了按钮,而是让按钮触发必要的查询。在下面的示例中,我已将button1
和button2
对应于UIButtons,我已将NSString *button1
替换为NSString *buttonText
,只是为了让事情更加清晰。
- (IBAction)buttonSelected:(id)sender {
NSString *buttonText;
if (sender == button1)
buttonText = @"Today";
else
buttonText = @"Tomorrow";
PFQuery *query = [PFQuery queryWithClassName:buttonText];
}
编辑:为了在这种情况下完成您想要的查询,您可以(1)将currentLocation和nearbyDistance存储为类变量,然后在buttonSelected
中访问它们以便在那里完成查询或(2)您可以在currentLocation
中获取nearbyDistance
和buttonSelected
值,然后调用类似
// Modified to now include the button's text as an argument
-(void)queryForAllPostsNearLocation:(CLLocation *)currentLocation withNearbyDistance:(CLLocationAccuracy)nearbyDistance withButtonText(NSString*)buttonText
从buttonSelected
开始,然后从那里执行查询。