Итак, я разрабатываю программу, в которой несколько маленьких программ. В главном окне отображаются все мини-программы, на данный момент есть только одна работающая, но все они будут несколько похожи, поэтому я нажимаю кнопку «TimeEntry», которая приводит меня к другому контроллеру представления таким образом:
(IBAction)btnTe_clicked:(id)sender
{
TELogin *ViewTELogin = [[TELogin alloc] init];
ViewTELogin.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:ViewTELogin animated:YES];
[ViewTELogin release];
}
и затем введите некоторые данные, подтвердите и перейдите к следующему контроллеру представления, если я хочу вернуться, я использую:
- (IBAction)btnMenu_clicked:(id)sender
{
[[self parentViewController] dismissModalViewControllerAnimated:YES];
}
пока все хорошо, мини-приложение работает, но код уродлив, в каждом контроллере представления я должен установить Scroll View, некоторую константу и метод UITextField, чтобы предотвратить скрытие текстового поля клавиатурой
-(void)textFieldDidEndEditing:(UITextField *)textField
{
CGRect viewFrame =self.view.frame;
viewFrame.origin.y += animatedDistance; //animated distance is a CGFloat
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:KEYBOARD_ANIMATION_DURATION];
[self.view setFrame:viewFrame];
[UIView commitAnimations];
}
И я почти уверен, что возможно создать один базовый класс, который реализует представление прокрутки и делегат текстового поля, а затем для каждого контроллера представления мне просто нужно будет импортировать базовый класс и спроектировать мой интерфейс. Но все, что я до сих пор пробовал, было пустой тратой времени, поэтому я зову на помощь.