UITableView не показывает iPad под управлением iOS 5 - PullRequest
0 голосов
/ 19 января 2012

Я столкнулся со странной проблемой, которая возникла где-то еще.Я не уверен, что это потому, что я не обновился до Xcode 4.2.1 или это iOS 5.

У меня есть приложение для iPad, которое работает на ОС 4.0 - 5.0.

У меня есть UITableView, который содержится в виде, который отображается модально в виде листа формы.

Таблица показывает, что работает на 4.x, но таблица исчезает при работе на 5.0.

Я знаю, что все слышали это миллион раз, но вчера оно буквально работало нормально, я ничего не менял, теперь это не работает.У меня есть рабочая копия со вчерашнего дня, которая установлена ​​на дополнительном iPad с iOS 5. Сегодня она не хочет работать.

Вот как у меня это настроено, может быть, вы можете обнаружить проблему.

  1. UITableView создается в IB.Источник данных и делегат установлены.

  2. Вид называется так:

GuidedSearchPriceViewController *guide = [[GuidedSearchPriceViewController alloc] initWithNibName:@"GuidedSearchPriceViewController_iPad" bundle:nil];
UINavigationController *temp = [[UINavigationController alloc] initWithRootViewController:guide]; 
temp.modalPresentationStyle = UIModalPresentationFormSheet; 
[guide setModalDelegate:self]; 
[guide setAppDelegate:self.appDelegate]; 
temp.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:temp animated:YES];

В iOS 4.x мы получаем это: iOS 4.x

Но есть iOS 5 , мы получаем это: iOS 5

Метод viewDidLoad представления Price:

- (void)viewDidLoad
{

    [super viewDidLoad];

    //Tried for testing but still does nothing
    self.table.delegate = self;
    self.table.dataSource = self;

    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Type" style:UIBarButtonItemStyleBordered target:self action:@selector(nextScreen)];
    addButton.enabled = NO;
    self.navigationItem.rightBarButtonItem = addButton;

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(dismiss)];

        self.navigationItem.leftBarButtonItem = cancel;
        self.navigationController.navigationBar.tintColor = [UIColor redColor];
        self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.png", [[NSBundle mainBundle] bundlePath], RP_iPad_FormsheetBackground]]];

    } else
        self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.png", [[NSBundle mainBundle] bundlePath], RP_BackgroundImage]]];

    // Make sure the background of the table is clear. I have also tried taking this out
    // to resolve the disappearing issue but it has no effect. 
    if ([self.table respondsToSelector:@selector(backgroundView)]) {
        [self.table setBackgroundView:nil];
        [self.table setBackgroundView:[[UIView alloc] init]];
        [self.table setBackgroundColor:UIColor.clearColor]; 
    }

    priceList = [[NSArray alloc] initWithObjects:@"$750", @"$1000", @"$1250", @"$1500", @"$1750", @"$2000", @"$2000 +", nil];

}

Большое спасибо за любую помощь и, как всегда, спасибо за ваше время.


ОТВЕТ

Мне удалось выяснить, в чем проблема, но я не уверен, почему она возникает.Может быть, кто-то может пролить свет на это.

Мне пришлось вставить

[table reloadData];

в конце -(void)viewDidLoad

Я не уверен, почему это должно быть вiOS 5, но не в iOS 4.x

1 Ответ

1 голос
/ 20 января 2012

Если вы используете UITableViewController с табличным представлением, «Когда табличное представление собирается появиться при первой загрузке, контроллер табличного представления перезагружает данные табличного представления».

«Если вы решите не использовать UITableViewController для управления табличным представлением, вы должны повторить то, что этот класс дает вам« бесплатно ». *

Пример кодаво второй ссылке отправляет reloadData в таблицу после установки ее делегата и источника данных.Возможно, в iOS 4 табличное представление автоматически перезагружалось при загрузке, а в iOS 5 оно было изменено в соответствии с документацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...