iphone SDK: Не понимаете, как создать суперкласс UIViewController? - PullRequest
0 голосов
/ 23 октября 2009

Я хотел создать ViewController, который имел бы некоторые функции редактирования текста, которые я хотел использовать в своем приложении. Итак, я сделал это.

 #import <UIKit/UIKit.h>


@interface superViewController : UIViewController
            <UITextFieldDelegate>{

    //these are instance variables, remember them?
    CGFloat animatedDistance;

}

@ конец

Затем я добавил реализацию (не показанную в этих заглушках)

#import "superViewController.h"


@implementation superViewController

static const CGFloat KEYBOARD_ANIMATION_DURATION = 0.3;
static const CGFloat MINIMUM_SCROLL_FRACTION = 0.2;
static const CGFloat MAXIMUM_SCROLL_FRACTION = 0.8;
static const CGFloat PORTRAIT_KEYBOARD_HEIGHT = 216;
static const CGFloat LANDSCAPE_KEYBOARD_HEIGHT = 162;


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

// код закомментирован для краткости. Эта работа сама по себе. }

- (void)textFieldDidEndEditing:(UITextField *)textField
{
}

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

Тогда я хотел попробовать это. Поэтому я сделал его подклассом, как показано здесь.

@interface salesViewController : superViewController  {

Я ожидал, что возможности superViewController для редактирования текста будут в salesViewController, но это не так. Я не уверен, почему или исправить.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 24 октября 2009

Вы установили делегат UITextField в качестве экземпляра salesView?

1 голос
/ 24 октября 2009

Терминология вашего вопроса немного сбивает с толку. Вы создаете подкласс «UIViewController», который вы называете «супер». Этот класс может быть отличным, но это не суперкласс UIViewController, это подкласс.

Да, ваш подкласс этого подкласса унаследует все методы и возможности "superViewController", так что в самом малом, что вы показали, нет ничего неправильного в этом отношении.

Вам нужно создать подкласс superViewController или, возможно, просто использовать его экземпляр?

0 голосов
/ 24 октября 2009

Нет, мне нужен подкласс этого. Я ожидал, что будет вызван следующий код. Не было. Я не понимаю Этот метод находится в главном подклассе, и я унаследовал его и назвал его salesView. Когда это представление загружено, и мы вводим текстовое поле, я ожидаю, что это консольное сообщение будет отображаться. Насколько я понимаю, salesView унаследует все методы мастер-класса.

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

NSLog(@"Here we are...");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...