NSObject 模态视图和委托

Posted

技术标签:

【中文标题】NSObject 模态视图和委托【英文标题】:NSObject ModalView and Delegate 【发布时间】:2011-02-07 23:48:56 【问题描述】:

我正在修改其他人的代码并尝试使用 ViewController,但它目前是一个 NSObject。所以下面我加了newDelegate

@interface myAppDelegate : NSObject <UITableviewDelegate, newDelegate>

在我的代码中,我尝试使用

调出模态视图
[self presentModalViewController:newModalView animated:YES];

我收到错误消息'myAppDelegate' may not respond to '-presentModalViewController:animated:',这很公平,它是一个 NSObject。有人可以帮助我采取一种可能的方法吗?

【问题讨论】:

【参考方案1】:

如果有人用NSObject 作为UIViewController 编写代码,你就会遇到很多问题。 “修改别人的代码”对我来说意味着“我是新供应商,因为老家伙对客户撒谎并说他们可以做 iPhone 开发工作,把它搞砸了”。也许回到客户那里说“我们需要从头开始重新开发,这是垃圾”? :)

至于手头的问题 - 应用程序委托是 NSObjects - 所以这部分看起来是正确的。但是,应用程序委托通常不应是 UITableViewDelegate。您将在应用程序委托中有一个 window 属性和一个 rootViewController 属性,最后调用 appDidFinishLaunchingWithOptions: 将实例化视图控制器并将其加载到窗口中。然后,该视图控制器将处理任何视图(在这种情况下可能是 UITableViewDelegate)。

presentModalViewController: 代码内置在 UIViewController 中,因此您无法直接从应用委托中使用它。

【讨论】:

以上是关于NSObject 模态视图和委托的主要内容,如果未能解决你的问题,请参考以下文章

通过 UIWindow 从继承自 NSObject 的类以模态方式在整个应用程序顶部显示 UIWebView?

NSObject 类中的委托

使用 NSObject 的 Swift 2.1 委托

没有在 NSObject 类 ios swift 中获取委托方法的回调

无法分配 UIPickerView 委托或数据源

将视图推出 NSObject 类