2012-01-19 3 views
0

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

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

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

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

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

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

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

  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 мнение, Цена является:

- (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

Я не знаю, почему он должен быть там прошивкой 5, но не в IOS 4.x

+0

Есть ли какие-либо новые предупреждения о компиляторе или предупреждения во время выполнения? – dtuckernet

+0

Отрицательный сэр. Я даже установил точки останова в таблице таблиц '- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath', чтобы убедиться, что он вызван. (он называется). – random

+0

Если вы решили свою проблему самостоятельно, обычно при переполнении стека принято решение в качестве ответа и принимать его самостоятельно; таким образом, каждый может видеть, что вопрос решен :) – deanWombourne

ответ

1

Если вы используете UITableViewController с вашим столом, “When the table view is about to appear the first time it’s loaded, the table-view controller reloads the table view’s data.”

“If you choose not to use UITableViewController for table-view management, you must replicate what this class gives you ‘for free.’”

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

Смежные вопросы