управление iboutlets в контроллере базового представления

Каждый UIViewController моего приложения использует делегаты UITextField, например:

- (void)textFieldDidBeginEditing:(UITextField*)textField {

    self.responder = textField;

}

- (BOOL)textFieldShouldReturn:(UITextField*)textField {

double elementYPosition = self.responder.frame.origin.y;
double elementHeight = self.responder.frame.size.height;
double scrollYPosition = self.scrollView.contentOffset.y;
/* some logic */

}

Теперь я пытаюсь создать контроллер базового представления, поэтому я могу наследовать его использование, повторное использование методов. Свойство responder в контроллере базового представления работает просто отлично, потому что делегат UITextField устанавливает его значение, но scrollview - это IBOutlet, и я не совсем уверен, как создать этот базовый класс:

#import "ViewControllerBase.h"

@interface ViewControllerBase ()

@property (weak, nonatomic) UIView* responder;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView; /* ??? */

@end

@implementation ViewControllerBase

-- methods

@end
1
nl ja de

1 ответы

В заголовке подкласса:

@property (weak, nonatomic) UIScrollView *scrollView;

В методе загрузки подкласса:

self.scrollView = (UIScrollView *)self.view.subviews[0];

Но это работает только потому, что мои контроллеры просмотра всегда в следующем формате:

UIViewController (self)
  UIView (self.view)
    UIScrollView (self.view.subviews[0])
      UILabel
      UIElement
    UIElement
    UIElement
0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.