2014-12-11 2 views
0

Я начал проект с раскадровки, и у него много просмотров, каждый из них имеет один заголовок (с изображением, названием компании и двумя кнопками). Я хочу сделать это один раз в главном представлении и сделать его повторно используемым для других представлений.Как создать пользовательский заголовок?

+0

Любой хороший пример? – Parvezkhan

+0

Вы можете создать собственное представление заголовка и использовать его там, где захотите. –

+0

спасибо ... Я знаю этот путь, но не знаю, как его достичь. Более подробный ответ был бы заметным. – Parvezkhan

ответ

1

Вы можете создать содержащий контроллер вида с вашим заголовком. Затем добавьте текущий контроллер корневого представления (текущий контроллер начального представления в раскадровку) к этому, содержащему контроллер вида.

0

Мне удалось создать многоразовые виды в соответствии с этим post.

  • Создать класс с именем SharedView, который расширяет UIView
  • Создать перо с тем же именем
  • установить свойство владельца файла 'в в бобах к SharedView класса
  • Создать выход из режима просмотра к классу SharedView, и называют его 'contentView'
  • Заменить initWithCoder следующим:

    -(void)awakeFromNib { 
        //Note that you must change @”BNYSharedView’ with whatever your nib is named 
        [[NSBundle mainBundle] loadNibNamed:@"BNYSharedView" owner:self options:nil]; 
        [self addSubview: self.contentView]; 
    } 
    
  • В вашем ViewControllers создавать представления, и установить их класс SharedView

Другим решением является использование Container View Controller, а также к вашей конкретной ситуации, я пытался реализовать demo для вас, пожалуйста, попробуйте!

Надеюсь, это поможет!

+0

Добавить обратную ссылку назад –

1

Создать настраиваемое представление с именем HeaderView с XIB:

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

@protocol HeaderViewDelegate <NSObject> 
- (void)onBackButtonTapped; 
@end 

@interface HeaderView : UIView 

@property (nonatomic, strong) IBOutlet UIImageView *headerImageView; 
@property (nonatomic, weak) id <HeaderViewDelegate> delegate; 

-(IBAction)backButtonTapped:(id)sender; 

@end 

В Header.m:

@implementation HeaderView 

-(IBAction)backButtonTapped:(id)sender 
{ 
    if (delegate != nil && [delegate respondToSelector:@selector(onBackButtonTapped)]) 
    { 
     [delegate onBackButtonTapped]; 
    } 
} 

@end 

Теперь то, что вам нужно сделать, это создать BaseViewController и каждый контроллер должен быть расширен от этого контроллера, чтобы показать тот же заголовок во всех видах ,

Дайте мне знать, что у вас есть вопросы относительно реализации.

+0

Давайте продолжим обсуждение в чате (http://chat.stackoverflow.com/rooms/66653/discussion-between-adeel-ur-rehman-and-parvezkhan). –

+0

Теперь он работает. Спасибо за вашу большую помощь. – Parvezkhan

0

Почему бы вам не использовать NavigationController в rootviewControoler с leftBarbutton и rightbarButton , так что это может быть в целом приложение

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