如果上传到Facebook的视频失败,我会调用一个方法。如果调用该方法,那么我希望UILabel
能够在上传失败时用户碰巧打开的任何视图控制器中短暂出现。
这可能吗?
之前我曾就UIAlertView
问过一个类似的问题,但我意识到在某些情况下警报会对用户体验产生负面影响。
答案 0 :(得分:0)
你可以通过多种方式做到这一点 -
1)您可以将UILabel
添加到您的应用主Window
。
2)如果您使用UINavigationController
,则会获得当前viewcontroller
的实例,然后可以将UILabel
添加到其视图中。
3)如果您在这种情况下使用UITabBarController
,则还可以通过访问viewcontroller
选定的tabBarController
来获取当前viewcontroller.
的实例
答案 1 :(得分:0)
此代码我在下面发布的是来自facebook的HackBook示例应用。他们的表现与你想要的相似。
- (void)showMessage:(NSString *)message {
CGRect labelFrame = messageView.frame;
labelFrame.origin.y = [UIScreen mainScreen].bounds.size.height - self.navigationController.navigationBar.frame.size.height - 20;
messageView.frame = labelFrame;
messageLabel.text = message;
messageView.hidden = NO;
// Use animation to show the message from the bottom then
// hide it.
[UIView animateWithDuration:0.5
delay:1.0
options: UIViewAnimationCurveEaseOut
animations:^{
CGRect labelFrame = messageView.frame;
labelFrame.origin.y -= labelFrame.size.height;
messageView.frame = labelFrame;
}
completion:^(BOOL finished){
if (finished) {
[UIView animateWithDuration:0.5
delay:3.0
options: UIViewAnimationCurveEaseOut
animations:^{
CGRect labelFrame = messageView.frame;
labelFrame.origin.y += messageView.frame.size.height;
// UIView *messageView; declared in header
messageView.frame = labelFrame;
}
completion:^(BOOL finished){
if (finished) {
messageView.hidden = YES;
messageLabel.text = @"";
}
}];
}
}];
}