在新库 ViewController 上方添加 UIButton

Posted

技术标签:

【中文标题】在新库 ViewController 上方添加 UIButton【英文标题】:Add UIButton above new library ViewController 【发布时间】:2015-05-27 09:11:21 【问题描述】:

我已将第三方库导入到我的项目中,我将其称为原始项目的 appDelegate 中的主 ViewController。我正在尝试添加一个后退按钮(不更改第三方库的代码)。

我在我的 AppDelegate 中向 VC 展示以下内容

ABSViewController *abs = [[ABViewController alloc] init];
    [self.window.rootViewController presentViewController:abs
                                                 animated:NO
                                               completion:nil];

然后我尝试使用下面的程序以编程方式添加我的 UIButton,但即使调用“bringSubViewToFront”它也不会出现在前面

UIButton *backButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
backButton.layer.backgroundColor = [UIColor blueColor].CGColor;

[abs.view addSubview:backButton];
[abs.view bringSubviewToFront:backButton];

我可以看到按钮是在 presentViewController 动画完成之前创建的,但它设置在 ABSViewController(库 ViewController)后面

【问题讨论】:

调用presentViewController后在哪里添加按钮?? 这个视图是如何呈现的?如果您使用导航控制器并按下此 VC,则可以设置navigationItem.backBarButtonItem = [UIBarButton alloc] init ...],您将获得此返回按钮。 如果是 VC,你也可以设置self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:self action:@selector(cancelPicker)]; 【参考方案1】:

我认为您需要在presentViewController的完成处理程序中添加按钮

ABSViewController *abs = [[ABViewController alloc] init];
[self presentViewController:viewController animated:YES completion:^
    UIButton *backButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
    backButton.layer.backgroundColor = [UIColor blueColor].CGColor;

    [abs.view addSubview:backButton];
    [abs.view bringSubviewToFront:backButton];
];

【讨论】:

谢谢,这是问题所在,按钮是在视图之前创建的。

以上是关于在新库 ViewController 上方添加 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

创建一个viewcontroller并将现有VC的标签和按钮添加到新的VC Swift iOS

如何在新窗口中推送 ViewController

在新 viewController 中加载 UIWebView 时出现 HTTP 错误 -999

向java添加新库[重复]

滑动以在新的viewcontroller中显示第二张图片

在新视图控制器中向注释和打开信息添加披露按钮