我对iOS编程很陌生,还在学习很多东西。我希望在某个屏幕上自动弹出一个警告视图。基本上,我在应用程序中使用新的qualquamm Gimbal信标。当第一次找到信标时,这段代码会触发日志:
// FYXVisitDelegate protocol
- (void)didArrive:(FYXVisit *)visit;
{
// this will be invoked when an authorized transmitter is sighted for the first time
NSLog(@"I arrived at a Gimbal Beacon!!! %@", visit.transmitter.name);
}
我想做的是让这个触发一个弹出或警报,当第一次发现说什么日志说只是为了测试。我很想给警报打上标签,但听说在iOS 7中不可能了,所以如果有什么关于弹出窗口的建议,我也很乐意听到。
这是我没有运气(日志仍然被触发):
- (void)didArrive:(FYXVisit *)visit;
{
// this will be invoked when an authorized transmitter is sighted for the first time
NSLog(@"I arrived at a Gimbal Beacon!!! %@", visit.transmitter.name);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:@"%@" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"View", visit.transmitter.name, nil];
[alert show];
}
问题可能是你的消息字符串分配,你正在使用格式字符串@"%@",但你错过了调用stringWithFormat:
旧代码:(检查message参数)
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:@"%@" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"View", visit.transmitter.name, nil];
新代码:(注意[NSString stringWithFormat]调用)
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:[NSString stringWithFormat:@"%@", visit.transmitter.name] delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"View", visit.transmitter.name, nil];
旧代码还指定了一个alertView按钮,以发送器的名称命名。我在新代码中保留了这一点,但如果你不想要它,就从otherButtonTitles:参数中删除"visit.transmitter.name"。
同样,如果你正在寻找更新,而访问正在进行中,使用这个FYXVisitManager委托方法:
- (void)receivedSighting:(FYXVisit *)visit updateTime:(NSDate *)updateTime RSSI:(NSNumber *)RSSI;