2016-05-04 2 views
0

Мое приложение должно быть универсальным как для iPhone, так и для iPad. Для некоторых просмотров версия iPhone использует один и тот же вид (например, tableview) в качестве версии iPad. Поэтому для лучшего повторного использования я пишу свой табличный вид так и использую его как в iPhone-контроллере, так и в iPad-контроллере.self.delegate = self в UITableView, что не так?

.h

@interface NotificationView : UITableView 
@end 

.m

@interface NotificationView()<UITableViewDelegate,UITableViewDataSource> 

@end 
@implementation NotificationView 

- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style 
{ 
    self = [super initWithFrame:frame style:style]; 
    if (self) { 
     self.delegate = self; 
     self.dataSource = self; 
     self.rowHeight = 80; 
     self.separatorStyle = UITableViewCellSeparatorStyleNone; 
    } 
    return self; 
} 

#pragma mark - UITableViewDataSource & UITableViewDelegate 

Я чувствую, что это не правильно писать так, как это, но не могу сказать, почему ... Я искал в течение некоторого времени, но ничего полезного не получил. Итак, мой вопрос:

  • Почему не так правильно писать?
  • Какова наилучшая практика повторного использования UITableView?

Заранее спасибо, если кто-нибудь сможет это объяснить.

+0

, где вы взяли объект таблицы просмотра? –

+0

Если вы просто делаете это только из-за поддержки iphone и ipad? aur вам нужен один и тот же вид таблицы для нескольких целей? Если вы делаете это только на основе размера, такого как пэд или телефон, тогда вам не нужно это делать – Lion

+0

@AayushKatiyar В контроллерах. – Calios

ответ

2

Он будет работать нормально, пока вы реализуете все необходимые методы для заполнения таблицы. Но причина, по которой это вас беспокоит, состоит в том, что она плохой дизайн - она ​​полностью размывает все линии в дизайне MVC. Ваш TableView - это представление. Он должен быть немым, и он использует делегирование для подключения к любым объектам модели с простым адаптером по уважительным причинам. Спросите себя, есть ли какой-либо вид (рисунок, внешний вид), который я делаю в этом подклассе UITableView? Если нет, то почему бы не сделать tableViewController или крошечный подкласс NSObject для заполнения таблицы? Лучший.

+0

Чтобы ответить на ваш вопрос, это не так. Итак, возможно, мне нужно просто использовать tableviewcontroller и добавить его в контроллер в качестве дочернего. Я первоначально нацелился на более легкий контроллер, однако, очевидно, что у меня неправильное направление. :( – Calios

+0

Прошу прощения за поздний прием. :) – Calios