تحميل وحدة تحكم العرض وعرض التسلسل الهرمي برمجيًا في Cocoa Touch بدون XIB

StackOverflow https://stackoverflow.com/questions/809898

سؤال

يبدو أن جميع قوالب اللمس الكاكاو يتم إعدادها لتحميل NIB.

إذا كنت أرغب في بدء مشروع جديد يستخدم وحدة تحكم العرض ، وتحميل عرضه (التسلسل الهرمي) بشكل برمجي ، وليس من NIB/XIB ، ما هي الخطوات اللازمة لإعداد ذلك أو ضبط قالب.

على الرغم من أن كل ما كان علي فعله هو تطبيق ToildView ، لكن لدي مشكلة في كل مرة أحاول القيام بذلك.

هل كانت مفيدة؟

المحلول

من السهل للغاية القيام بتوليد واجهة مستخدم برمجية تمامًا. أولاً ، تحتاج إلى تحرير 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 كمتغير مثيل داخل المندوب ، للرجوع إليه لاحقًا.

يجب أن يتيح لك هذا إنشاء واجهة المستخدم برمجيًا من خلال MyRootViewController.

نصائح أخرى

Uiviews أنفسهم ليس لديهم تسلسل هرمي ، uinavigationcontrollers يفعلون. لذا ابتسم أحد هؤلاء ، وينزلق على uiviewController على مكدسها. هذا يجب أن يفعل ذلك ، بأكثر طريقة ممكنة ، مع عدم وجود ملفات XIB على الإطلاق. يجب أن تكون قادرًا على البناء على هذا.

- (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];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top