Почему не отображается индикатор раскрытия информации?

Когда приложение запускается в симуляторе, индикатор раскрытия не отображается, из-за этого я не могу перейти к деталям

NamesTableViewController.m:

#import "NamesTableViewController.h"

@interface NamesTableViewController ()
@property (nonatomic, copy) NSDictionary *propertyList;
@property (nonatomic, copy) NSArray *letters;
@property (nonatomic, copy)NSMutableArray *filteredNames;
@property (nonatomic, strong)UISearchController *searchController;


@end

@implementation NamesTableViewController

@synthesize propertyList,  letters, filteredNames, searchController;

- (void)viewDidLoad {
    [super viewDidLoad];

    UITableView *tableView = (id)[self.view viewWithTag:1];

    [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];

    filteredNames = [[NSMutableArray alloc]init];
    searchController = [[UISearchController alloc]init];

    //bura bax self yigishdir
    self.searchController.searchResultsUpdater = self;

    NSString *path = [[NSBundle mainBundle] pathForResource:@"names" ofType:@"plist"];
    self.propertyList = [NSDictionary dictionaryWithContentsOfFile:path];
    self.letters = [[self.propertyList allKeys] sortedArrayUsingSelector:@selector(compare:)];
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    if (tableView.tag == 1){

        return self.letters.count;

    }else {
        return 1;
    }

    }

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    if (tableView.tag == 1) {

        NSString *letter = self.letters[section];
        NSArray *keyValues = [self.propertyList[letter] allKeys];
        return keyValues.count;
    } else {


        return [filteredNames count];
    }
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    // Configure the cell...

    if (tableView.tag == 1){

        NSString *letter = self.letters[indexPath.section];;
        NSArray *keyValues = [[self.propertyList[letter] allKeys] sortedArrayUsingSelector:@selector(compare:)];
        cell.textLabel.text = keyValues[indexPath.row];
    } else{
        cell.textLabel.text = filteredNames[indexPath.row];
    }
    return cell;
}

-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    return self.letters;
}

-(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {

    if (tableView.tag == 1) {
        return letters [section];
    } else {
        return nil;
    }
}

#pragma mark Search Display Delegate Methods

-(void)searchDisplayController:(UISearchController *)controller didLoadSearchResultsTableView:(UITableView *)tableView {
    [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
}



-(BOOL)searchDisplayController:(UISearchController *)controller shouldReloadTableForSearchString:(NSString *)searchString

{

    [filteredNames removeAllObjects];
    if (searchString.length > 0) {
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [search] %@", self.searchBar.text];

        for (NSString *letter in letters) {
            NSArray *matches = [[self.propertyList[letter] allKeys]filteredArrayUsingPredicate:predicate];

            [filteredNames addObjectsFromArray:matches];

        }

    }

    return YES;
}


@end

NamesTableViewController.h:

#import <UIKit/UIKit.h>


@interface NamesTableViewController : UITableViewController <UISearchDisplayDelegate, UISearchBarDelegate>


@property (strong, nonatomic) IBOutlet UISearchBar *searchBar;

@end

Как я могу это сделать? Пожалуйста, помогите мне. я новичок


person Fa Hu    schedule 15.02.2016    source источник
comment
Каков ваш detailViewController? Как вы переходите к detailViewController? Вы используете какой-нибудь segue или проталкиваете его в свой didselectrowAtIndexPath? вы можете установить тип аксессуара в своем коде или в конструкторе интерфейсов.   -  person Shehzad Ali    schedule 15.02.2016
comment
Я установил в конструкторе интерфейсов, но не работал при запуске приложения. Я использую segue (показать)   -  person Fa Hu    schedule 15.02.2016
comment
ваш detailViewController находится в раскадровке? Он встроен в контроллер навигации?   -  person Shehzad Ali    schedule 15.02.2016
comment
да. конечно я добавил   -  person Fa Hu    schedule 15.02.2016


Ответы (1)


попробуй это

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    .......
}

Обновить

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here, for example: If your are used in connection 
// use this

   [self performSegueWithIdentifier:@"yourSegueName" sender:self];

 // if you are used connection less in storyboard , use this
 DetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
   // Push the view controller.
[self.navigationController pushViewController:vc animated:YES];


}
person Anbu.Karthik    schedule 15.02.2016
comment
Показать аксессуар. но не переходите к DetailViewController - person Fa Hu; 15.02.2016
comment
Как я могу этого добиться? - person Fa Hu; 15.02.2016
comment
если вы нажмете UITableViewCellAccessoryDisclosureIndicator, вы не хотите выполнять какие-либо действия, коррцет - person Anbu.Karthik; 15.02.2016
comment
Я хочу, когда я нажимаю, перейти к подробному контроллеру просмотра - person Fa Hu; 15.02.2016
comment
@FaHu - последнее сомнение, ваш detailviewcontroller добавлен в раскадровку или xib - person Anbu.Karthik; 15.02.2016
comment
в каком месте он добавлен? - person Fa Hu; 15.02.2016
comment
это ваш метод делегата tableview, добавленный после метода пути cellforrowatIndex - person Anbu.Karthik; 15.02.2016
comment
за счет * vc - person Fa Hu; 15.02.2016
comment
Обновляю код. но он снова не работает. Пожалуйста, проверьте снимок экрана - person Fa Hu; 15.02.2016
comment
@FaHu - используйте любого брата, либо используйте [self performSegueWithIdentifier:@"yourSegueName" sender:self];, либо используйте DetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"]; // Push the view controller. [self.navigationController pushViewController:vc animated:YES]; - person Anbu.Karthik; 15.02.2016
comment
он не работает. я ничего не меняю. как ни странно - person Fa Hu; 16.02.2016
comment
что, братан, вчера ты сказал, что он работает, теперь сказал, что не работает, хорошо, с какой проблемой ты столкнулся - person Anbu.Karthik; 16.02.2016
comment
странно. вроде ничего не изменилось. Но это не работает - person Fa Hu; 16.02.2016
comment
ха-ха, хорошо, пришлите свой проект мне на почту [email protected] - person Anbu.Karthik; 16.02.2016
comment
Отправляю свой проект на вашу почту - person Fa Hu; 16.02.2016
comment
@FaHu - обязательно проверю и отвечу на почту - person Anbu.Karthik; 16.02.2016
comment
Пожалуйста, при просмотре проекта покажите мне мои ошибки, которые я знал. так как я новичок и хочу учиться - person Fa Hu; 16.02.2016
comment
@FaHu - конечно, братан, дай только 10 минут - person Anbu.Karthik; 16.02.2016