以编程方式在索引处调用UIAlertView clickedbutton

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式在索引处调用UIAlertView clickedbutton相关的知识,希望对你有一定的参考价值。

我试图以编程方式调用UIAlertView的委托方法。这是代码:

if([vc respondsToSelector:@selector(alertView:clickedButtonAtIndex:)]) {
        // Manually invoke the alert view button handler
        [(id <UIAlertViewDelegate>)vc alertView:nil
                           clickedButtonAtIndex:0];
    }

它在ios5.0上工作正常,但不适用于iOS6.0,欢迎评论或建议:)

以下是详细的完整方法:

TWTweetComposeViewController *vc = [[[TWTweetComposeViewController alloc] init]autorelease];
    // Settin The Initial Text
    [vc setInitialText:status];
    [vc setCompletionHandler:^(TWTweetComposeViewControllerResult result) {
        if(result == TWTweetComposeViewControllerResultDone) {

            NSLog(@"Tweeted Sucessfully");
            }
    }];
    if([delegate isKindOfClass:[UIViewController class]]){
        [(UIViewController *)delegate presentModalViewController:vc animated:YES];
    }
      //alertView:clickedButtonAtIndex:
    if([vc respondsToSelector:@selector(alertView:clickedButtonAtIndex:)]) {
        // Manually invoke the alert view button handler
        [(id <UIAlertViewDelegate>)vc alertView:nil
                           clickedButtonAtIndex:0];
    }
}
答案

在您的代码中,只需使用您的uialertview对象名称提供警报视图,如下图所示。

[(id <UIAlertViewDelegate>)vc alertView:yourAlertView
                           clickedButtonAtIndex:0];

否则试试这个波纹管代码..

   id<UIAlertViewDelegate> delegate = yourAlertView.delegate;
    yourAlertView.delegate = nil;
    [delegate alertView:yourAlertView clickedButtonAtIndex:0];

有关它的其他选项,请参阅此链接..

why-doesnt-dismisswithclickedbuttonindex-ever-call-clickedbuttonatindex

另一答案

直接调用委托方法是不好的做法。 UIAlertView有一种叫做dismissWithClickedButtonIndex:animated:的方法。如果你这样称呼,那么将调用UIAlertViewDelegate方法alertView:willDismissWithButtonIndex:alertView:didDismissWithButtonIndex:,假设您的委托设置正确。

另一答案

您可以使用此委托,这将为您工作..

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;  
另一答案

在iOS 6中实现警报视图没有这些差异。您可以使用此委托方法轻松完成任务 - :

(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;  

试试这个,然后让我们知道你在控制台中得到什么样的警告......

另一答案

在IOS6中不推荐使用TWTeetComposeViewController。请尝试使用DETweet。 :)也适用于iOS 6。 :)

以上是关于以编程方式在索引处调用UIAlertView clickedbutton的主要内容,如果未能解决你的问题,请参考以下文章

从 UIAlertView 按钮以编程方式推送视图?

以编程方式关闭 UIAlertView

如何在 iOS 7 中以编程方式正确关闭 UIAlertView?

以编程方式设置对象的框架无效

以编程方式检查核心数据实体是不是被索引

以编程方式设置按钮文本会自动转到最后一个索引