标签: presentviewcontroller

无法在 UITableViewCell 中呈现

以下代码在 a 中工作UIViewController,但在我的类中,UITableViewCell它给出了错误

使用未解析的标识符“存在”。

代码是一个动作:

@IBAction func linkAction(_ sender: Any) { 
  let linkString = self.linkText.text 
  if let requestUrl = URL(string: linkString!) {
     let safariVC = SFSafariViewController(url: requestUrl)
     present(safariVC, animated: true)  
  }
}
Run Code Online (Sandbox Code Playgroud)

有解决办法吗?

xcode uitableview ios presentviewcontroller swift

1
推荐指数
1
解决办法
1575
查看次数

iOS - 在解除其他视图控制器后立即显示View控制器

我有三个View Controller VC1,VC2和VC3.

VC2是第三方库,它在VC1上呈现.

然后VC2解散自己并向VC1发送回调,VC1尝试向自己呈现VC3但失败了.

解雇VC2后有没有办法立即呈现VC3?

-(void)onDismisLoginVC{

    MessageVC *messageVC = [[MessageVC alloc] initWithNibName:@"MessageVC" bundle:nil];
    [self.navigationController presentViewController:messageVC animated:YES completion:NULL];

}
Run Code Online (Sandbox Code Playgroud)

不幸的是我无法^completion在VC2中使用解除显示的viewcontroller的块,因为我只是接收到这个方法的回调而无法编辑VC2的代码.

objective-c ios presentviewcontroller

0
推荐指数
2
解决办法
1万
查看次数

PopViewControllerAnimated无法正常工作.没有参考呼叫VC

我有一个UITabBarViewController包含4个单独的ViewControllers.每个VC都有UIBarButtonItem他们NavigationBar带你去"postPage".您可以使用此代码进入帖子页面,该代码显示嵌入式代码NavigationController

- (void)postInvoked:(UIBarButtonItem *)sender
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *postPage = [storyboard instantiateViewControllerWithIdentifier: @"postPageLead"];
    [self presentViewController:postPage animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

然后在PostViewController.m,我有一个IBAction当用户点击UIBarButtonItem命名为"后退" 时触发:

- (IBAction)backOnPost:(UIBarButtonItem *)sender
{
    [self.parentViewController.navigationController popViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.请记住,一旦到达邮局,就不会记住呼叫VC.如何遍历原始调用ViewController?(如何引用调用者,popViewControllerAnimated是必需的?)

objective-c uiviewcontroller presentviewcontroller

0
推荐指数
1
解决办法
4095
查看次数

swift presentViewController以编程方式在destinationVC VDL中找到nil

尝试通过理解基本级别的代码行来巩固我的知识.

我已经调整了我的应用程序,使用ViewController(VC)2作为初始VC而不是VC1.

我正在练习完全通过代码填充这个VC2.当编码UIButton以转换为VC1时,我的控制台输出"致命错误:在解开可选值时意外发现nil"(lldb).和线程1指向VC1 viewDidLoad(VDL),我在其中设置了一些属性

VC1

override func viewDidLoad() {
    super.viewDidLoad()
    P1Chip.hidden = true; P2Chip.hidden = true; P3Chip.hidden = true; P4Chip.hidden = true; P5Chip.hidden = true; P6Chip.hidden = true; P7Chip.hidden = true; P8Chip.hidden = true; P9Chip.hidden = true


etc
Run Code Online (Sandbox Code Playgroud)

当VCL是初始VC时,这个VC1没有任何问题.

填充VC2的方法

import Foundation
import UIKit

class VC2: UIViewController {
    let home:UIButton! = UIButton(frame: CGRectMake(10,10,15,15)) as UIButton


    override func viewDidLoad() {
        super.viewDidLoad()
        home.backgroundColor = UIColor(red: 0.4, green: 0.6, blue: 0, alpha: 1)
        home.setTitle("home", forState: .Normal)
        home.addTarget(self, action: "home:", forControlEvents: .TouchUpInside)
        view.addSubview(home)     
    } …
Run Code Online (Sandbox Code Playgroud)

xcode ios presentviewcontroller swift

0
推荐指数
1
解决办法
1278
查看次数

全屏呈现时透明视图控制器背景

我在另一个视图控制器(A)上展示了一个视图控制器(B),我希望 B 的背景是透明的,以便 A 在背景中仍然可见。

因此,在呈现B之前,将其modalPresentationStyle设置为.overCurrentContext并且B具有view.backgroundColor = UIColor.clear,以便呈现透明背景。

但是,当我关闭 B 并返回到 A 时,A 的方法(如viewDidAppearviewWillAppear等)不会重新触发。

如果我将上面的内容更改modalPresentationStyle.fullScreenviewWillAppear那么当返回到 A 时将会重新触发,但这一次,我失去了透明背景。

总而言之,如何在所呈现的视图上实现透明背景并在viewDidAppear返回 A 时重新触发方法(例如在 A 上)?

uiviewcontroller ios presentviewcontroller

0
推荐指数
1
解决办法
1804
查看次数