所以我有一个UIAlertController
,它需要显示在另一个视图控制器的顶部,所以一个子视图控制器。我可以让子视图控制器显示在父视图控制器的顶部,没有问题,但是当我把这个子视图控制器放在前面时,我不能让警报按钮做出响应。
UIAlertController* alert = [AlertHelper createAlertWithTitle:title
message:message
cancelButton:nil
continueButtonText:Ok
continueAction:nil
cancelAction:nil];
alert.view.translatesAutoresizingMaskIntoConstraints = false;
[self addChildViewController:alert];
alert.view.frame = self.view.bounds;
[self.view addSubview:alert.view];
[alert didMoveToParentViewController:self];
[alert.view.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = YES;
[alert.view.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES;
字符串
1条答案
按热度按时间6ie5vjzr1#
UIAlertController
是使用UIAlertAction
的专用控制器。值得注意的是苹果的docs:
重要
UIAlertController类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改。
虽然您可能没有对它进行子类化(您没有提供
AlertHelper
代码),但显然没有“按原样”使用它。相反,您可能希望设计自己的“模拟”警报控制器。
这里有一个简单的例子...
AlertHelper.h
字符串
AlertHelper.m
型
以及一个示例视图控制器:
ViewController.h
import <UIKit/UIKit.h>
@interface ViewController:UIViewController @end
ViewController.m
型
输出量:
x1c 0d1x的数据