一些存在的疑问,我一直在研究各种网站,我有几个例子,但我有2个问题我无法澄清:
导航控制器:我已经看过大约10个导航控制器的例子,但我无法理解它,我看到代表们声明并显示将包含的主屏幕,包含在XIB文件。
但是,这不是我需要的情况,而且我已经加载了我的主屏幕(Window)(在这种情况下是我的登录窗口)
我希望我在主屏幕上所谓的屏幕包含导航控制器并从那里开始,使用导航控制器移动多个屏幕。但是......当我这样做时,屏幕包含导航控制器,如果他声明它已经忙于我的登录?并且不希望我的应用程序有导航控制器,但只有某些特定的屏幕(因为它们取决于某些选项)。
我必须在不影响我的屏幕的情况下申报所有内容?啊,我很想念这个控件(UINavigationController)。是服务,但不是按照我的意愿在屏幕上消费,而不是在整个应用程序中消费。
代表是什么?:我使用的很少,而且我经常使用它,因为我看到了对其他示例的引用,并且通常尽量不使用它因为不知道如何使用它
如果我能解释非技术性的方式,而不是更容易理解,那就是所有的代表。 它是什么?
如何使用?
我知道在哪里使用它吗?
我知道何时应该使用它。
它在质量应用中使用很少或很多。**
很抱歉给您带来不便,这是因为它让我感到困惑,因为导航控制器和那里我留下了几个问题,如果我转向你,是因为我跑出去并获得更多资源来调查和分析示例,但我无法理解爱好。
答案 0 :(得分:1)
在你应该在appleDocs中阅读的navigationController问题上,他们会以最好的方式解释它,并告诉你在使用它们时使用哪些方法。 (参考:http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html)
委托只是一种从一个对象传递到另一个对象的消息。 此问题也在此问题中写过:How does a delegate work in objective-C?
基本上,委托是一种允许对象互相交互的方式 在它们之间建立强烈的相互依赖性,因为这使得它们成为了 您的应用程序设计不够灵活。而不是对象 彼此控制,他们可以有一个他们发送的代表(或 委托)消息,代表做他们做的任何事情 为了回应并对此消息采取行动,然后通常返回 回到另一个对象的东西。
委托也是子类化的更好选择。而不是你 必须创建自己的自定义类来稍微改变方式 其他对象表现或传递数据,委托允许 对象将消息发送给他们的代理人为他们工作 没有创建子类来进行微小更改的开销 其他对象。
当然,委托的主要缺点是代表 可用的方法取决于Apple工程师预见的内容 是有用的,他们期望人们有什么共同的实现 需要,这限制了你可以实现的目标。虽然, 正如奎因泰勒指出的那样,这是针对Cocoa框架的 因此并不适用于所有情况。
如果委托是子类化的选项,那么接受它,因为 它是管理代码和交互之间更清晰的方式 对象。
答案 1 :(得分:1)
您可以通过编程方式添加导航控制器。
SomeRootViewController *rootViewController = [[SomeRootViewController alloc] initWithNibName:@"SomeRootViewControllernibName" bundle:nil];
UINavigationController *navCont = [[UINavigationController alloc] initWithRootViewController:rootViewController];
在此之后,您可以显示导航控制器的视图(navCont.view)。例如,
currentViewController.view = navCont.view
至于代表,正如意思所暗示的那样,代表们代表原始班级处理一些行动。例如,如果您可以使用UIApplication委托,则UIApplication会决定应用程序是否应退出应用程序委托。这些决定可以根据您的要求在运行时进行。代表使用协议进行编码。