1

我正在开发一个应用程序,ViewController当我按下UIAlertView. 我怎么能这样做?

我在这里找到了这个解决方案:iOS Dev: Segue by press a button in an Alert? ,但它没有用。

xCode 说:

the method: presentModalViewController is deprecated

我在网上发现我应该使用该方法presentViewController

我试图这样做,但它显示没有任何交互的黑屏,这是怎么回事?我在这里粘贴我的代码,也许你可以帮助我。

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex != alertView.cancelButtonIndex)
    {
        PromoViewController *pvc = [[PromoViewController alloc] init];
        [self presentViewController:pvc animated:YES completion:nil];
    }
}

谢谢

4

3 回答 3

2

为了以编程方式使用 segue,您需要调用performSegueWithIdentifier.

首先确保您的 segue 在情节提要中有一个标识符。

然后改用此代码...

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex != alertView.cancelButtonIndex)
    {
        [self performSegueWithIdentifier:@"YourSegueIdentifier"];
    }
}

这将做你想要的。

于 2013-07-22T12:54:29.563 回答
0

那么另一种方法是获取实例并以编程方式进行

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
                                                         bundle: nil];
PromoViewController *controller = (PromoViewController*)[mainStoryboard 
                    instantiateViewControllerWithIdentifier: @"<Controller ID>"];
[self presentViewController:controller animated:YES completion:nil];

注意控制器 ID 是您通过属性检查器为场景设置的情节提要 ID

于 2013-07-22T13:00:50.043 回答
0

看到这个:让按钮 UIAlertView 执行 Segue

它将向您展示如何创建手动 segue 并调用它。

于 2014-08-10T08:54:38.507 回答