سؤال

هل كان لدى أي شخص أي حظ باستخدام uipicker في 3.2 SDK؟ أنا في منتصف نقل تطبيق iPhone إلى جهاز iPad وهذا هو الشيء الوحيد الذي لا يمكنني الوصول إليه. لقد حاولت...

-إنشاء ورقة عمل ، وأضف المنتقي باعتباره عرضًا فرعيًا وعرضه.

-خلق أن ورقة العمل أعلاه ، مما يجعلها وجهة نظر عام

-صنع فقط المنتقي عرض عرض عام ، مضيفًا أن VC إلى uipopover

مع ورقة العمل لا تحاول حتى رسمها. في عرض Popover ، يحاول الرسم ولكن لا يتم تقديمه بشكل صحيح.

أردت فقط التحقق لمعرفة ما إذا كان أي شخص قد أنجز هذا وما إذا كان الأمر كذلك.

شكرا لكم جميعا!

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

المحلول

أنا مؤلف البرنامج التعليمي المذكور أعلاه. لكي يعمل منتقي في البوبوفر وإضافة القيمة المحددة إلى مربع النص في العرض الرئيسي الذي تحتاجه لاستخدام بروتوكولات. لقد أنشأت عينة مشروع لإظهار هذا. سأقوم بإنشاء برنامج تعليمي في هذا قريبًا.

عينة مشروع

نصائح أخرى

لقد ناضلت للتو مع هذا لمدة 24 ساعة تقريبًا وحصلت على العمل من خلال اتباع هذا البرنامج التعليمي وأينما يذكر UitableView الخاص به ، فقط فكر في uipickerview واستبدال المعلومات المناسبة.

ماثيو كيسي - البرنامج التعليمي: مقدمة للبوب على السيطرة على iPad

باختصار ، على جهاز iPad ، الطريقة الوحيدة التي يمكنك من خلالها إظهار منتقي هي داخل عنصر تحكم Popover. مشاركة البيانات بين وحدة التحكم في عرض محتوى Popover (وحدة التحكم في عرض Picker) ووحدة التحكم في عرض التطبيق الرئيسي هي الشيء الذي لم أستطع اكتشافه. (أي الحصول على طريقة "DeSelectrow" الخاصة بالمنتقي للتأثير على كائن في وحدة التحكم الرئيسية الخاصة بك ، على سبيل المثال ، يتم معالجة هذا Uitextfield أو Uibultton.

أنا لست خبيرًا في هذه الأشياء بأي حال من الأحوال ، لذلك ذهبت خطوة بخطوة مع هذا البرنامج التعليمي وقد نجحت في النهاية. قبل أن أجد هذا البرنامج التعليمي فقدت. (أنا أيضًا أقوم بنقل تطبيق iPhone إلى iPad.)

عندما تريد مشاركة البيانات بين وحدات التحكم في العرض ... فإن الحل هو nsnotificationCenter.

أعلم أن هذا لا يجيب على السؤال بالكامل ، لكن إذا أردت مشاركة البيانات بين وحدات التحكم في العرض:

NSMutableDictionary *toshare = [[NSMutabledictionary alloc] init];
[toshare setValue:valueToShare forKey:@"shared"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"imSharing" withObject:nil userInfo:(NSDictionary *)toshare];

في وحدة التحكم في العرض: ضع في الحمولة

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imSharing:) name:@"imSharing" object:nil];

ثم أضف هذه الوظيفة:

-(void)imSharing:(NSNotification *)notification {
      NSDictionary *dictionary = [notification userInfo]; 
        //do something with [dictionary objectForKey:@"shared"];
        dictionary = nil;
}

يعمل هذا لمشاركة البيانات بين وحدات التحكم في العرض 2 ... حسنًا ، كميات صغيرة من البيانات على أي حال.

وإلا انظر هنا لمزيد من المعلومات حول مشاركة البيانات بين وحدات التحكم في العرض

هل تستخدم Builder Interface؟ من الأسهل بكثير إنشاء فئة فرعية UiviewController جديدة في Xcode مع ملف NIB ، ثم اسحب في Uipicker. ثم تحتاج إلى تقديم وحدة تحكم العرض في البوبوفر. أوراق الحركة ليست مصممة للحصول على آراء فرعية ، لذلك لا تفعل ذلك.

لقد فعلت ذلك: شاهد لقطة الشاشة الثالثة في الطلاء C64.

شكرا على الردود الجميع. لذا ، على الرغم من أنني لا أستطيع أن أقول ما هي المشكلة الأولية ، فقد بدأت المشكلة من نقطة الصفر وحصلت عليها. لقد صنعت وحدات تحكم عرض جديدة تمامًا وعرضتها في Popover وعملت بشكل جيد. يبدو أن واحدة من النقاط الأكثر صرامة في صنع تطبيق عالمي.

ستعمل uipickerview إذا قمت بإنشائها على iPad إذا قمت بإنشائها مثل ذلك:

UIPickerView* pickerView = [[UIPickerView alloc]initWithFrame: CGRectMake (someX, someY, 320, 216)];

يبدو أن بعض الأحجام الأخرى تعمل. لكن Cgrectzero لا يعمل على iPad - على الرغم من أنه يعمل في iPhone.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top