У меня есть методы протоколов во всех моих viewControllers, которые работают точно так же, что они делают на моем viewController. Я хотел бы назвать их и передать viewController в качестве параметра, вместо того, чтобы переопределять их из подклассов и писать один и тот же код снова и снова. Это возможно? Как это сделать? Например, в приведенном ниже методе я хотел бы передать дочерний элемент viewController в качестве параметра, выполнить его итерацию и выполнить на нем некоторые предложения. Если бы я мог это сделать, мне не нужно было бы переписывать этот код один раз и другой в каждом подклассе. Это возможно?Переопределить и изменить методы протоколов
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//iterate an array of subviews and finds indicator
NSArray *subviews = [self.view subviews];
for (UIView *subview in subviews)
{
if([subview isKindOfClass:[UIActivityIndicatorView class]] && [subview respondsToSelector:@selector(stopAnimating)])
{
[subview performSelector:@selector(stopAnimating)];
}
}
CGSize contentSize = webView.scrollView.contentSize;
CGSize viewSize = self.view.bounds.size;
float rw = viewSize.width/contentSize.width;
webView.scrollView.minimumZoomScale = rw;
webView.scrollView.maximumZoomScale = rw;
webView.scrollView.zoomScale = rw;
}
не лучшее решение, будет ли это поместить код в общем супер классе? –
Этот код, который я показал выше, находится в суперклассе. Но он делает что-то на контроллере представления, поэтому мне нужно переписать его на child viewControllers, поскольку я не могу передать дочерний элемент viewController в качестве параметра. Я ищу альтернативу для этого. – user3033437
Я не понимаю ... Почему бы вам не сделать то, что вы хотите сделать на вашем viewController в своей реализации суперкласса? –