gpt4 book ai didi

objective-c - 什么时候应该在 IOS 编程中使用 UIViewController?

转载 作者:可可西里 更新时间:2023-11-01 03:58:37 25 4
gpt4 key购买 nike

我一直在研究用于 IOS 编程的 API,并且一直在阅读有关 View Controller 和 UIView 的内容。看起来 UIViewController 子类对于模态导航和自定义动画非常有用,但我看不到任何其他用途。

使用 UIViewController 子类而不是普通的 NSObject 子类有什么好处?

为什么

@interface MyViewController : UIViewController {
}

-(void)handleEvent;

@end

不仅仅是

@interface MyViewController : NSObject {
UIView* view;
}

@property(retain) UIView* view;
-(void)handleEvent;

@end

难道你最终只是将 View 添加到窗口,而不是实际的 viewController 本身吗?对于大多数用途,您需要的所有功能不都封装在 UIView 对象中吗?你只是最终像这样添加它:

[window addSubview:myViewControllerInstance.view]

除了模态导航等内置功能之外,UIViewController 是否还有其他用途?

谢谢。

(对不起,如果这是一个愚蠢的问题,我已经学习了 2 天了)

最佳答案

Mac OS 和 iOS 上的 Cocoa 大量使用 Model-View-Controller (MVC) 模式。遵循 MVC 模型,UIViewController 是一个 Controller 类。它的工作是协调用户界面(View 对象)和应用程序数据(Model 对象)之间的交互。更基本地说, Controller 主要是您放置应用程序逻辑的地方。它处理事件并相应地调用 View 和模型。

参见 UIViewController reference ,其中对类(class)有很好的概述。

通过派生自 UIViewController,您可以免费获得一堆 Controller 功能,例如从 Nib 文件加载 View (initWithNibName:bundle:)和响应与 View 相关的事件(viewWillAppear:、viewWillDisappear:)。此外,UIViewController 本身是 UIResponder 的子类。 ,其中包含处理触摸事件的功能(touchesBegan:withEvent、touchesMoved:withEvent、touchesEnded:withEvent)。

基本上,没有理由不使用 UIViewController 及其提供的所有功能。即使您能够设法做到这一点,也需要更多的工作,并没有真正的好处。

关于objective-c - 什么时候应该在 IOS 编程中使用 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com