Facebook へのビデオのアップロードが失敗した場合に呼び出されるメソッドがあります。そのメソッドが呼び出されUILabel
た場合、アップロードが失敗したときにユーザーがたまたまオンになっているビューコントローラーに a が簡単に表示されるようにしたいと思います。
これは可能ですか?
以前に について同様の質問UIAlertView
をしましたが、特定の状況ではアラートがユーザー エクスペリエンスに悪影響を与える可能性があることに気付きました。
Facebook へのビデオのアップロードが失敗した場合に呼び出されるメソッドがあります。そのメソッドが呼び出されUILabel
た場合、アップロードが失敗したときにユーザーがたまたまオンになっているビューコントローラーに a が簡単に表示されるようにしたいと思います。
これは可能ですか?
以前に について同様の質問UIAlertView
をしましたが、特定の状況ではアラートがユーザー エクスペリエンスに悪影響を与える可能性があることに気付きました。
これを行うには多くの方法があります-
UILabel
1)アプリケーションの main に追加できますWindow
。
2) を使用しているUINavigationController
場合は、 current のインスタンスを取得してから、そのビューviewcontroller
に追加できます。UILabel
3) この場合に を使用している場合は、選択した にアクセスUITabBarController
して current のインスタンスを取得することもできますviewcontroller
tabBarController
viewcontroller.
以下に投稿しているこのコードは、 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 = @"";
}
}];
}
}];
}