Я пытаюсь создать общий контроллер представления и 2 других вида, которые оба наследуют.Наследование на контроллере просмотра Цель c
Теперь это общий вид (то, что я думаю, что это отношение - если что-то еще нужно я добавлю его):
@interface CardGameViewController()
@property (strong, nonatomic) IBOutlet UITabBarItem *TabSelection;
@property (strong, nonatomic) CardMatchingGame *game;
@property (strong, nonatomic) IBOutlet UIButton *resetButton;
@property (weak, nonatomic) IBOutlet UILabel *scoreLable;
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *cardButtons;
@end
@implementation CardGameViewController
- (CardMatchingGame*)game
{
if(!_game) _game = [[CardMatchingGame alloc]initWithCardCount:[self.cardButtons count] usingDeck:[self createDeck] gameMode:[self getActiveTabWithString:self.TabSelection.description]];
return _game;
}
- (Deck*)createDeck //abstract
{
return nil; <------- Relevant generic function
}
и эти 2 файла, наследуемые упомянутый файл:
SetGameViewController.h:
#import "CardGameViewController.h"
@interface SetGameViewController : CardGameViewController
@end
SetGameViewController.m:
#import "SetGameViewController.h"
#import "SetCardDeck.h"
@interface SetGameViewController()
@end
@implementation SetGameViewController
-(Deck*)createDeck
{
return [[SetCardDeck alloc]init];
}
@end
и второй один:
PlayingCardGameViewController.h:
#import "CardGameViewController.h"
@interface PlayingCardGameViewController : CardGameViewController
@end
PlayingCardGameViewController.m:
#import "PlayingCardGameViewController.h"
#import "PlayingCardDeck.h"
@interface PlayingCardGameViewController()
@end
@implementation PlayingCardGameViewController
- (Deck*)createDeck
{
return [[PlayingCardDeck alloc]init];
}
@end
У меня также есть панели вкладок навигатор для переключения между 2 видами.
Дело в том, первый (SetGameViewController) никогда не инстанцирован независимо от того, что я делаю,
Значение функции createDeck
никогда не вызывается,
В то время как второй один (PlayingCardGameViewController) в порядке каждый раз.
Что я пробовал:
размещение точек останова на основной функции зрения - (CardMatchingGame*)game
.
этот только вызван, когда я пытаюсь запустить второй рабочий вид, а не плохой.
Если что-то не хватает, чтобы дать определенное руководство, пожалуйста, дайте мне знать, и я добавлю его.
Пробовал это тоже ... на самом деле я сменил проблематичный файл как «PlayingCardGameViewController», а он все еще не работает – Itzik984
i новичок в объекте c, можно ли связать одно свойство с 2 видами или более? даже несмотря на то, что свойство (любое, которое связано с обоими представлениями) кажется ОК связным, на него отвечает только одно представление. как это может быть? – Itzik984
Вы продолжаете использовать термин view и view controller взаимозаменяемо. Не. Контроллер представления не является представлением. Они совершенно разные. Вы спрашиваете, можно ли подключить свойство IBOutlet к нескольким представлениям? Ответ - нет. –