Загрузка контроллера представления и иерархии представления программно в Касании Какао без xib

Для каждого n > 0 мы добавляем новую функцию-член, принимающую это значение в качестве аргумента, который наследуется от следующего уровня вниз:

template<int n, typename Real=double>
class f
    : public f<n-1, Real>
{
public:
    f() { /* initialize dv */ }

    using f<n-1, Real>::prime;
    Real prime(Real x, integral_constant<int, n>) { 
        /* find appropriate index for x, and interpolate on dv */
    }

protected:
    std::vector<Real> dv;
};

Где базовая версия добавляет operator(): [117 ]

template<typename Real=double>
class f<0, Real>
{
public:
    f() { /* initialize v */ }

    Real operator()(Real x) { /* find appropriate index for x, and interpolate */}
    Real prime(Real x) { return (*this)(x); }

protected:
    std::vector<Real> v;
};

Это означает, что первая производная вызывает prime(x, integral_constant<int, 1>{}), вторая производная вызывает prime(x, integral_constant<int, 2>{}) и т. Д.

7
задан Cœur 7 April 2019 в 12:00
поделиться

2 ответа

Совершенно программная генерация пользовательского интерфейса достаточно проста. Во-первых, вам нужно отредактировать main.m, чтобы он выглядел примерно так:

int main(int argc, char *argv[]) 
{
    NSAutoreleasePool *pool = [NSAutoreleasePool new];  
    UIApplicationMain(argc, argv, nil, @"MyAppDelegate");
    [pool release];
    return 0;   
}

где MyAppDelegate - имя класса вашего делегата приложения. Это означает, что экземпляр MyAppDelegate будет создан при запуске, что обычно обрабатывается основным файлом Nib для приложения.

В MyAppDelegate реализуйте свой метод applicationDidFinishLaunching:, аналогичный следующему:

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{    
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    if (!window) 
    {
        [self release];
        return;
    }
    window.backgroundColor = [UIColor whiteColor];

    rootController = [[MyRootViewController alloc] init];

    [window addSubview:rootController.view];
    [window makeKeyAndVisible];
    [window layoutSubviews];    
}

где MyRootViewController - это Посмотреть контроллер для основного вида в вашем окне. Это должно инициализировать главное окно и добавить к нему представление, управляемое MyRootViewController. rootController хранится в качестве переменной экземпляра в делегате для дальнейшего использования.

16
ответ дан 6 December 2019 в 10:03
поделиться

UIViews themselves do not have a hierarchy, UINavigationControllers do. So init one of those, and pop a UIViewController onto it's stack. This should do it, in the most basic way possible, with no XIB files at all. You should be able to build on this.

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
   UINavigationController *navController = [[UINavigationController alloc] init];

   UIViewController *viewController = [[UIViewController alloc] init];

   // set the properties of viewController here, to make it look like you want

   [navController pushViewController:viewController animated:NO];

   [window addSubview:navController.view];

   // Don't forget memory management
   [navController release];
   [viewController release];

   [window makeKeyAndVisible];
}
3
ответ дан 6 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: