ios - 用于在 IOS 中关闭 ViewController 的按钮处理程序语法

标签 ios objective-c selector dismissviewcontroller

我在代码中创建了一个自定义 UIBarButton 以关闭自定义 viewController。然而,编译器不喜欢我的语法。

下面是创建 UIBarButtonItem 的代码:

//grab VC
detailC* detailVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"detailVC"]; //This custom VC
is a sub-class of UIViewController

//Create barbuttonitem
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]
                                    initWithImage:[UIImage imageNamed:@"close.png]
                                    style:UIBarButtonItemStylePlain
                                    target:self
                                   action:@selector(dismss:detailVC)];//ERROR HERE

//Here is the dismiss method: 
-(void) dismissVC: (UIViewController*) vc {

  [vc dismissViewControllerAnimated:YES completion:nil];
}

编译器的错误是:'Expected :'

insert : 有一个修复选项。如果我选择修复,它会将选择器更改为:

action:@selector(dismissVC: controller:)];

这没有意义并且还给出了警告 'Undeclared Selector"

我做错了什么?

注意:这是在 appDelegate 中进行的,所以我不能使用 self 来关闭 VC。

最佳答案

您尝试做的根本不正确。 dismissVC: 方法可以采用的唯一有效参数是触发操作的 UIBarButtonItem。您不能将 View Controller 传递给该方法。

但你不需要。由于您想要关闭“self”,只需在 self 上调用 dismissViewController

//Create barbuttonitem
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]
                                initWithImage:[UIImage imageNamed:@"close.png"]
                                style:UIBarButtonItemStylePlain
                                target:self
                                action:@selector(dismiss:)];

这是更新的方法:

- (void)dismiss:(UIBarButtonItem *)button {
    [self dismissViewControllerAnimated:YES completion:nil];
}

关于ios - 用于在 IOS 中关闭 ViewController 的按钮处理程序语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54240271/

相关文章:

objective-c - NSTimer 在触发时导致 "unrecognized selector"崩溃

ios - 在 Interface Builder 中从 "first"重命名选项卡

iphone - shouldStartLoadwithRequest 没有在子类中被调用

iphone - 具有自定义值 : The right way 的可重用 Objc 类

ios - 如何在 Twitter API 中通过列表名称检索列表 ID

jquery - 如何选择具有特定 id 的父级的图像元素?

iphone - 通过调用CFRelease与使用CGColorSpaceRelease释放CGColorSpaceRef的区别?

ios - 您能否以编程方式在应用程序中允许推送通知?

objective-c - 来自 createFileAtPath 的更详细错误?

html - :after float none not working and trying to find something else