Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.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 在iOS选项卡中的视图之间传递数据_Iphone_Objective C_Ios - Fatal编程技术网

Iphone 在iOS选项卡中的视图之间传递数据

Iphone 在iOS选项卡中的视图之间传递数据,iphone,objective-c,ios,Iphone,Objective C,Ios,我刚开始使用iOS(安卓操作系统),我很难弄清楚如何在选项卡中的视图之间传递数据。我加入了一些图片来更详细地描述我的问题;当其中一个选择器发生更改时,如何使地图类型发生更改?当勾选布尔开关时,如何使用户位置出现/消失 一个选项卡是地图选项卡: 另一个是选择器: 快速的答案是让视图控制器彼此对话 编辑:我知道我必须回来。 这取决于你从哪里开始 但似乎很受欢迎,并有一个范例项目。它可能需要调整以使用更现代的iOS版本,但它确实提供了总体思路 在应用程序中执行此操作的一种方法是在视图控制器上设置属性

我刚开始使用iOS(安卓操作系统),我很难弄清楚如何在选项卡中的视图之间传递数据。我加入了一些图片来更详细地描述我的问题;当其中一个选择器发生更改时,如何使地图类型发生更改?当勾选布尔开关时,如何使用户位置出现/消失

一个选项卡是地图选项卡:

另一个是选择器:


快速的答案是让视图控制器彼此对话

编辑:我知道我必须回来。

这取决于你从哪里开始

但似乎很受欢迎,并有一个范例项目。它可能需要调整以使用更现代的iOS版本,但它确实提供了总体思路

在应用程序中执行此操作的一种方法是在视图控制器上设置属性,以显示地图显示的视图类型以及当前位置是否显示。然后,从选择器的视图控制器设置这些属性

如何获取地图的视图控制器-在创建时将其传递给选择器的控制器。抵制让映射控制器成为应用程序委托属性的诱惑。这是一种简单的传递方法,但它破坏了封装

作为旁白。


随着您的进步,您会意识到实现这一点的方法是将控件作为子视图覆盖在地图视图上。这不仅是一个更好的UI(所有更改都可以就地进行),而且当您在同一个视图上时,不需要使用不同的视图控制器,也不需要传递对象指针。:)

快速答案是让视图控制器彼此对话

编辑:我知道我必须回来。

这取决于你从哪里开始

但似乎很受欢迎,并有一个范例项目。它可能需要调整以使用更现代的iOS版本,但它确实提供了总体思路

在应用程序中执行此操作的一种方法是在视图控制器上设置属性,以显示地图显示的视图类型以及当前位置是否显示。然后,从选择器的视图控制器设置这些属性

如何获取地图的视图控制器-在创建时将其传递给选择器的控制器。抵制让映射控制器成为应用程序委托属性的诱惑。这是一种简单的传递方法,但它破坏了封装

作为旁白。


随着您的进步,您会意识到实现这一点的方法是将控件作为子视图覆盖在地图视图上。这不仅是一个更好的UI(所有更改都可以就地进行),而且当您在同一个视图上时,不需要使用不同的视图控制器,也不需要传递对象指针。:)

您必须使用
NSNotifications
NSUserDefaults


选中

您必须使用
NSNotifications
nsserdefaults


选中

对于这种类型的“设置”视图,我会创建一个自定义协议,并将地图视图设置为设置视图中的代理对象。如果你需要密码,请告诉我

对于这种类型的“设置”视图,我将创建一个自定义协议,并将地图视图设置为设置视图中的代理对象。如果你需要密码,请告诉我

我的第一个答案是,这里可能不适合使用选项卡式界面。选项卡栏用于提供并行使用模式(例如,显示警报或计时器的手表应用程序),而不是提供辅助信息。您可能应该在“地图视图”上有一个按钮,该按钮会弹出一个模式对话框来更改设置。然后使用委托模式将更改的信息发送回父级。有关示例代码,请参阅苹果公司关于模态视图控制器的文档。

好吧,我的第一个答案是,这里可能不适合使用选项卡式界面。选项卡栏用于提供并行使用模式(例如,显示警报或计时器的手表应用程序),而不是提供辅助信息。您可能应该在“地图视图”上有一个按钮,该按钮会弹出一个模式对话框来更改设置。然后使用委托模式将更改的信息发送回父级。有关示例代码,请参阅苹果公司关于模态视图控制器的文档。

您应该查看此线程,了解每种可能方法的详细说明:


您应该查看此线程,了解每种可能方法的详细说明:


请你暂且说一句:我以后会注意到这一点。这纯粹是为了我的学习目的:)放在你一边:我会注意到,为了将来。这纯粹是为了我的学习目的:)