Ios 整个应用程序的UISearchBar是否相同?

Ios 整个应用程序的UISearchBar是否相同?,ios,objective-c,uitableview,uisearchbar,Ios,Objective C,Uitableview,Uisearchbar,我见过很多应用程序都有一个通用搜索栏,它始终位于应用程序的顶部。我在一个视图控制器中实现了一个带有UITableView的UISearchBar。我希望在我的应用程序中的其他视图控制器上有相同的搜索栏。如何将这些其他ui搜索栏链接到我已经创建的搜索栏?也就是说,如何配置这些其他ui搜索栏,以便它们返回相同的搜索结果并链接到相同的ui表格视图 因为每个应用程序只有一个窗口,而视图没有 级别,您必须确保视图位于层次结构的顶部, 不管怎样。一种相对简单的方法是将其直接添加到 界面其余部分(导航控制器)

我见过很多应用程序都有一个通用搜索栏,它始终位于应用程序的顶部。我在一个视图控制器中实现了一个带有
UITableView
UISearchBar
。我希望在我的应用程序中的其他视图控制器上有相同的搜索栏。如何将这些其他
ui搜索栏
链接到我已经创建的搜索栏?也就是说,如何配置这些其他
ui搜索栏
,以便它们返回相同的搜索结果并链接到相同的
ui表格视图

因为每个应用程序只有一个窗口,而视图没有 级别,您必须确保视图位于层次结构的顶部, 不管怎样。一种相对简单的方法是将其直接添加到 界面其余部分(导航控制器)上方的窗口:

在ApplicationIDLaunch中:

// After the main navigation controller or tab controller has been added
// either programmatically or in the xib:
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,70,320,44)];
[self.window addSubview:searchBar];
因为每个应用程序只有一个窗口,而视图没有 级别,您必须确保视图位于层次结构的顶部, 不管怎样。一种相对简单的方法是将其直接添加到 界面其余部分(导航控制器)上方的窗口:

在ApplicationIDLaunch中:

// After the main navigation controller or tab controller has been added
// either programmatically or in the xib:
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,70,320,44)];
[self.window addSubview:searchBar];

嵌套视图控制器可能是您所需要的

定义一个“俯视图控制器”,用于管理包含搜索栏的“俯视图”,并将您的(表)视图添加到俯视图中(在俯视图上使用
-addSubview:
),并将关联的视图控制器添加到俯视图控制器中(在顶部VC和自身上使用
-addChildViewController:

在Interface Builder中,您可以定义一个俯视图,并在其中定义一个“容器视图”。然后,系统将处理子视图和子视图控制器的插入

通过定义良好的视图控制器层次结构,可以使应用程序设计更具逻辑性和干净性。我建议在开始编写代码之前,花些时间研究一个好的层次结构

最后一点注意:
UISearchDisplayController
是一个对象(显然不是视图控制器),它在视图控制器的视图上方叠加了一个搜索栏。您可以直接将其应用于最顶部的视图控制器(始终可见的视图控制器,如导航控制器)上方。如果你还没有的话,这是值得研究的


一个例子 视图控制器层次结构
  • XYZTopViewController
    (管理
    XYZTopView
    • UINavigationController
      (管理苹果定义的私有导航视图层次结构)
      • XYZFirstPageViewController
        (管理
        XYZFirstPageView
        )(“根”视图控制器)
      • XYZSecondPageViewController
        (管理
        XYZSecondPageView
        )(需要时由导航控制器推送)
视图层次结构
  • XYZTopView
    • UISearchBar
      • (Apple定义的专用导航视图层次结构)
      • xyzfirstpage视图
        • (您的视图层次结构属于第一页/屏幕)

嵌套视图控制器可能就是您所需要的

定义一个“俯视图控制器”,用于管理包含搜索栏的“俯视图”,并将您的(表)视图添加到俯视图中(在俯视图上使用
-addSubview:
),并将关联的视图控制器添加到俯视图控制器中(在顶部VC和自身上使用
-addChildViewController:

在Interface Builder中,您可以定义一个俯视图,并在其中定义一个“容器视图”。然后,系统将处理子视图和子视图控制器的插入

通过定义良好的视图控制器层次结构,可以使应用程序设计更具逻辑性和干净性。我建议在开始编写代码之前,花些时间研究一个好的层次结构

最后一点注意:
UISearchDisplayController
是一个对象(显然不是视图控制器),它在视图控制器的视图上方叠加了一个搜索栏。您可以直接将其应用于最顶部的视图控制器(始终可见的视图控制器,如导航控制器)上方。如果你还没有的话,这是值得研究的


一个例子 视图控制器层次结构
  • XYZTopViewController
    (管理
    XYZTopView
    • UINavigationController
      (管理苹果定义的私有导航视图层次结构)
      • XYZFirstPageViewController
        (管理
        XYZFirstPageView
        )(“根”视图控制器)
      • XYZSecondPageViewController
        (管理
        XYZSecondPageView
        )(需要时由导航控制器推送)
视图层次结构
  • XYZTopView
    • UISearchBar
      • (Apple定义的专用导航视图层次结构)
      • xyzfirstpage视图
        • (您的视图层次结构属于第一页/屏幕)