Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 简单的导航应用程序是如何工作的?_Iphone_Ios - Fatal编程技术网

Iphone 简单的导航应用程序是如何工作的?

Iphone 简单的导航应用程序是如何工作的?,iphone,ios,Iphone,Ios,我在的帮助下创建了一个简单的导航应用程序。但我在下面给出的一行中有一点困惑 [window addSubview:[navigationController view]]; 在 在我的代表中,我有 UINavigationController *navigationController; 这里我们可以看到navigationController指向UINavigationController。我的困惑就在下面这行 [navigationController view] 这条线是怎么运作的?

我在的帮助下创建了一个简单的导航应用程序。但我在下面给出的一行中有一点困惑

[window addSubview:[navigationController view]];

在我的代表中,我有

UINavigationController *navigationController;
这里我们可以看到navigationController指向UINavigationController。我的困惑就在下面这行

[navigationController view]

这条线是怎么运作的?也许它指向了我的RootViewController.xib,如果它是,那么它会是什么样子

好的,所以当你创建一个导航控制器时,它只是一个视图堆栈的控制器。为了使用
addSubview:(UIView*)
向窗口实际添加视图,您必须使用
[navigationController view]
检索导航控制器的视图,该视图获取给定导航控制器的视图,允许您在应用程序的主窗口中进行设置。我希望这是有道理的。你应该考虑阅读Objut-C.

OK的一些介绍,这样当你创建一个导航控制器时,它只是一个控制器的一个视图堆栈的方法。为了使用

addSubview:(UIView*)
向窗口实际添加视图,您必须使用
[navigationController view]
检索导航控制器的视图,该视图获取给定导航控制器的视图,允许您在应用程序的主窗口中进行设置。我希望这是有道理的。您应该考虑阅读Objut-C.< /P> < P>的一些介绍:导航控制器管理一个独立的视图层次结构(称为导航界面),其内容由导航控制器直接管理的视图和部分由您提供的自定义视图控制器管理的视图组成。每个自定义视图控制器管理不同的视图层次,但导航控制器协调不同视图层次之间的导航

当应用程序启动时,该函数

- (void)applicationDidFinishLaunching:(UIApplication *)application
被称为。在该函数中,添加应用程序窗口的子视图。它可能是您的viewController、tabBarController或navigationController(取决于您要创建的应用程序类型)。什么时候

已编译。它添加了附加到导航控制器的视图,导航控制器是基于导航的应用程序iphone中的rootViewController


如果您想详细了解导航控制器的工作原理。选中此选项

导航控制器管理自包含的视图层次结构(称为导航界面),其内容部分由导航控制器直接管理的视图组成,部分由您提供的自定义视图控制器管理的视图组成。每个自定义视图控制器管理不同的视图层次,但导航控制器协调不同视图层次之间的导航

当应用程序启动时,该函数

- (void)applicationDidFinishLaunching:(UIApplication *)application
被称为。在该函数中,添加应用程序窗口的子视图。它可能是您的viewController、tabBarController或navigationController(取决于您要创建的应用程序类型)。什么时候

已编译。它添加了附加到导航控制器的视图,导航控制器是基于导航的应用程序iphone中的rootViewController


如果您想详细了解导航控制器的工作原理。检查此项

问:这条线是如何工作的?
A:它将调度您的navigationController视图,
[navigationController视图]
equals
navigationController.view

如果您使用nib文件启动NavigationController,它将被清除。
在这里,我创建了一个文件:
CustomNavigationController.xib
,我的navigationController将其作为视图加载:
您可以在右侧看到navigationController的视图,它在顶部包含一个navigationBar。
导航控制器与
pushViewController
popViewController
等一起工作,它在图片的灰色区域加载和卸载viewController的视图

Q:也许它指向了我的RootViewController.xib,如果是,那么它是什么?
A:我不确定您的
RootViewController.xib
是什么。可能是您的主视图控制器。
[窗口添加子视图:[navigationController视图]]只是将navigationController的视图作为子视图添加到主窗口。
如果您的应用程序基于导航控制器,则可以将其设置为Windows的根视图控制器(如
self.window.rootViewController=navigationController;
at
application:DidFinishLaunchwithOptions:
method)。

一般来说,一个应用程序只有一个窗口,但有很多视图。视图控制器可以加载x/nib文件作为其视图。也许您需要阅读更多关于MVC(模型-视图-控制器)的信息

问:这条线是如何运作的?
A:它将调度您的navigationController视图,
[navigationController视图]
equals
navigationController.view

如果您使用nib文件启动NavigationController,它将被清除。
在这里,我创建了一个文件:
CustomNavigationController.xib
,我的navigationController将其作为视图加载:
您可以在右侧看到navigationController的视图,它在顶部包含一个navigationBar。
导航控制器与
pushViewController
popViewController
等一起工作,它在图片的灰色区域加载和卸载viewController的视图

Q:也许它指向了我的RootViewController.xib,如果是,那么它是什么?
A:我不确定您的
RootViewController.xib
是什么。可能是您的主视图控制器。
[窗口添加子视图:[navigationController视图]]只是将navigationController的视图作为子视图添加到主窗口。
如果您的应用程序基于导航控制器,则可以将其设置为Windows的根视图控制器(如
self.window.rootViewController=navigationController;
at
application:didfishlaunchingwithoptions:
method
[window addSubview:[navigationController view]];