小编Cli*_*f W的帖子

在故事板中,如何制作用于多个控制器的自定义单元?

我正在尝试在我正在使用的应用程序中使用故事板.在应用程序中有ListsUsers,每个都包含其他列表(列表成员,用户拥有的列表).所以,相应地,我有ListCellUserCell课.目标是让它们在整个应用程序中可重复使用(即,在我的任何tableview控制器中).

这就是我遇到问题的地方.

如何在故事板中创建可在任何视图控制器中重复使用的自定义tableview单元格?

以下是我迄今为止尝试过的具体内容.

  • 在Controller#1中,添加了一个原型单元格,将类设置为我的UITableViewCell子类,设置重用ID,添加标签并将它们连接到类的出口.在Controller#2中,添加了一个空的原型单元格,将其设置为同一个类并重复使用id.当它运行时,当控制器#2中显示单元格时,标签永远不会出现.在Controller#1中正常工作.

  • 在不同的NIB中设计每种细胞类型,并连接到适当的细胞类.在storyboard中,添加了一个空的原型单元格并设置其类并重用id来引用我的单元类.在控制器的viewDidLoad方法中,为重用ID注册了那些NIB文件.如图所示,两个控制器中的单元格都像原型一样空.

  • 将两个控制器中的原型保持为空并设置类并将id重用于我的单元类.完全用代码构建单元格的UI.细胞在所有控制器中都能完美运

在第二种情况下,我怀疑原型总是覆盖NIB,如果我杀死原型单元,注册我的NIB用于重用ID将起作用.但后来我无法设置从单元格到其他框架的segue,这实际上是使用故事板的全部要点.

在一天结束时,我想要两件事:在故事板中连接基于tableview的流,并在视觉上而不是在代码中定义单元格布局.到目前为止,我无法看到如何获得这两者.

objective-c storyboard uitableview ios

216
推荐指数
6
解决办法
8万
查看次数

UISearchDisplayContoller - 在搜索栏中键入时无法阻止表重新加载

我正在尝试设置搜索显示控制器来处理来自Web服务的异步结果.我已经掌握了基本功能,但遇到了一个我无法弄清楚的奇怪问题.

似乎是为了安装搜索显示控制器以实现异步,你真的需要做两件事:

  1. 为searchDisplayController返回NO:shouldReloadTableForSearchString,and
  2. 处理searchBarSearchButtonClicked并触发表重装自己.

我正在做这两件事,但我看到的是搜索显示控制器正在重新加载输入到搜索栏中的第一个字符的表,即使我按照#1返回NO.它不会在输入的后续字符上重新加载.

所以,我的问题是:如何在用户输入时让搜索显示控制器不再尝试重新加载表格?(特别是输入的第一个字符)

我已经看到这个问题被提到作为其他几个问题的一部分,但我还没有看到问题的直接答案.在我采用一堆UI修改工作之前,我想了解发生了什么或者我做错了什么.

这是我的代码的快速提炼,以显示问题.当我运行它并在搜索栏中输入"abcde"时,在输入"a"后,结果显示为"#0","a#2"等.在我点击搜索按钮之前,它们不会再次更新然后你会看到"abcde#0","abcde#1"等.当然,在我点击搜索按钮之前,没有任何结果.

#pragma mark -
#pragma mark UISearchDisplayController Delegate Methods

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
    return NO;
}

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption {
    return NO;
}


#pragma mark -
#pragma mark UISearchBarDelegate Methods

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    [self.searchDisplayController.searchResultsTableView reloadData];

}


#pragma mark -
#pragma mark Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 20;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString …
Run Code Online (Sandbox Code Playgroud)

iphone uitableview uisearchbar uisearchdisplaycontroller

7
推荐指数
1
解决办法
7238
查看次数