Я пытаюсь подкласса UIPopoverController
и дать ЭТО надлежащую ответственность за определение того, какой UIViewController (contentViewController) должен создавать и представлять, а не ужасно загромождать код вызова popover с этой ответственностью , Но я сталкиваюсь с несколькими проблемами.Что делать, если вы не можете вызвать [super init] вначале
Согласно документации Apple, никогда не будет веской причины делать что-либо перед первым вызовом.
if (self = [super init])
Так что я попробовал, что, думая, что я мог бы просто установить contentViewController
свойство позже в методе, когда мой код изучил данные я прохожу в и принимает решение о том, какие UIViewController создавать и prsent, но называть [super init]
удары с ошибкой, говорящей мне, что мне нужно вызвать другой инициализатор.
[super initWithContentViewController:...]
Так что моя проблема проиллюстрирована ниже. Я не могу использовать первые строки своего пользовательского инициализатора, чтобы принять решение, а THEN - супер, когда вызов супер должен быть самым первым вызовом, и, по словам яблока, никогда не бывает веских причин не быть первым вызов.
initWithData:(MyDataObject*)data
// examine data object and determine what kind
// of UIViewController to create and present
//
// [super initWithContentViewController:myDecidedContentViewController
Что делать? Спасибо.
Это не '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '} Вы смешиваете обязанности, которые вы хотите, чтобы создавать контроллеры. Я бы предложил создать еще один класс, который создаст как popover, так и контроллер содержимого, обновит мой ответ с более подробной информацией. – Cristik
Это похоже на разумную альтернативу, хотя это создаст намного больше кода. Теперь, когда я думаю об этом, похоже, что я нарушаю ответственность MVC (Massive View Controller), помещая решения данных внутри представления, а не Massive View Controller или некоторый класс, который он ссылается. –
'Massive View Controller' - это интересный термин :) – Cristik