Каков основной способ добавить представление под viewcontroller.view? - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу вставить вид под viewcontroller.view. Моя идея заключается в обмене viewcontroller.view с tempview во время выполнения.

В "UIViewController + Ext.m":

+ (void)load {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        Class vc = [UIViewController class];

        SEL originalSEL = @selector(viewDidLoad);
        SEL swizzledSEL = @selector(Easy_viewDidLoad);

        Method originalMethod = class_getInstanceMethod(vc, originalSEL);
        Method swizzledMethod = class_getInstanceMethod(vc, swizzledSEL);

        BOOL didAddMethod =
        class_addMethod(vc, originalSEL, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod));

        if (didAddMethod) {
            class_replaceMethod(vc, swizzledSEL, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));
        }
        else {
            method_exchangeImplementations(originalMethod, swizzledMethod);
        }
    }); 
}

- (void)Easy_viewDidLoad
{
    UIView *view = self.view ;

    UIView *tempV = [[UIView alloc]initWithFrame:CGRectMake(0, 0, ScreenWidth(), ScreenHeight())];
    tempV.backgroundColor = [UIColor cyanColor];
    self.view = tempV ;

    view.frame = CGRectMake(0, NavigationHeight(), ScreenWidth(), ScreenHeight()-NavigationHeight());
    [self.view addSubview:view];

    [self Easy_viewDidLoad];
}   

Когда я добавляю UITextField на контроллер представления, текстовое поле становится первым респондентом. Но приложение убивается и выдает эту ошибку:

- [UIView leftDockItem]: нераспознанный селектор отправлен в экземпляр 0x7f91bb742d80

  1. Что такое левый DockItem
  2. Каков базовый способ добавления представления под viewcontroller.view?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...