Вы найдете причину, почему KeyValuePairs не может быть сериализирован в этом Сообщение в блоге MSDN
, ответ Структуры является простым решением, однако не единственное решение. "Лучшее" решение состоит в том, чтобы записать Пользовательский класс KeyValurPair, который является сериализуемым.
Контроллер представления, который помещается в стек контроллера навигации, для параметра hidesBottomBarWhenPushing установлено значение yes. Код будет выглядеть примерно так в -didSelectRowAtIndexPath в табличном представлении.
NSDictionary *newsItem = [newsItems objectAtIndex:[indexPath row]];
NewsDetailViewController *controller = [[NewsDetailViewController alloc] init];
[controller setHidesBottomBarWhenPushed:YES];
[controller setNewsItem:newsItem];
[[self navigationController] pushViewController:controller animated:YES];
[controller release], controller = nil;
Взгляните на документацию для hidesBottomBarWhenPushing .
ps Вы, вероятно, получите больше информации по этому вопросу, если добавите Добавьте к нему тег "iphone".
У меня есть представление, которое необязательно (в зависимости от какого-либо другого состояния) должно отображать панель инструментов контроллера навигации. Это решение, которое я использовал для отображения и скрытия панели инструментов (с анимацией), когда представление появляется и исчезает с помощью навигации. Похоже на то, что вам может понадобиться.
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// Show the nav controller toolbar if needed
if (someBool)
[self.navigationController setToolbarHidden:NO animated:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
// Hide the nav controller toolbar (if visible)
[self.navigationController setToolbarHidden:YES animated:animated];
}
Реализуйте этот фрагмент кода в классе, в котором вы хотите скрыть панель вкладок.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
self.hidesBottomBarWhenPushed = YES;
return self;
}
Всего наилучшего.