0

我想知道,如果我在视图控制器 A 中分配 UIAlertView,我可以从视图控制器 B 访问它的响应吗?

例如

视图控制器 A

UIAlertView *alert;
alert = [[UIAlertView alloc] init];
[alert setTitle:@"Confirm"];
[alert setMessage:@"Do you pick Yes or No?"];
[alert setDelegate:self];
[alert addButtonWithTitle:@"Yes"];
[alert addButtonWithTitle:@"No"];
[alert show];

视图控制器 B

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView == alert)
{

}
}

谢谢你的帮助

4

2 回答 2

1

如果您将警报视图的委托设置为 ViewController B,则可以。

[alert setDelegate:self];

变成

[alert setDelegate:viewControllerB];

我正在处理的代码库中的一个示例:

// Creating the view controller
AreaListController *descendentAreas = [[AreaListController alloc] init];

// Setting the delegate
[alert setDelegate:descendentAreas];

// Pushing the view controller
[self pushViewController:descendentAreas]; 
于 2013-03-11T18:25:27.427 回答
0

创建一个像 MyAlertView.swift 这样的 swift 文件

import Foundation
import UIKit
|
class MyAlertView{
class func showIt(title: String,message: String) -> UIAlertView{
let alert : UIAlertView!
alert.delegate = self
alert.title = title
alert.message = message
alert.addButtonWithTitle("Cancel")
alert.addButtonWithTitle("Done")
alert.show
return alert
}

并像这样在任何视图控制器中访问它

MyAlertView.showIt(title: "I'm Title",message: "I'm Message").delegate = self
于 2017-03-24T08:50:41.420 回答