ما هي أسهل طريقة لإضافة صف في عرض UableView مع سلسلة مقدمة من المستخدم؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

لدي بسيطة UITableViewController في UINavigationController يعرض قائمة من الأوتار من صفيف مع زر التحرير/القيام به الافتراضي على الجانب الأيمن من شريط التنقل.

عند الضغط على زر التحرير ، UITableView الرسوم المتحركة بشكل صحيح ويظهر الرموز الحمراء ناقص للحذف. يؤدي الضغط على زر الحذف إلى إزالة الصف من طريقة عرض الجدول والمصفوفة (التي تم تنفيذها في tableView:commitEditingStyle:forRowAtIndexPath: طريقة UITableViewController).

أود الآن السماح للمستخدم بإضافة صف إلى العرض (وإضافة السلسلة إلى الصفيف الأساسي) ، لكنني لست متأكدًا من كيفية القيام بذلك. طريقة ContintingStyle else if (editingStyle == UITableViewCellEditingStyleInsert), ، لكنني لا أعرف كيف يمكنني جعل المستخدم يقوم بإدخال السلسلة.

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

ألا توجد طريقة أسهل؟

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

المحلول

من المحتمل أن يكون إنشاء وحدة تحكم عرض أخرى أسهل طريقة على المدى الطويل. يمكنك تقديمه بشكل أساسي عن طريق الاتصال

SomeViewController* theViewController = [[SomeViewController alloc] init];
[self presentModalViewController: theViewController animated: YES];
[theViewController release];

عندما يكون TheViewController جاهزًا للخروج ، يمكنه الاتصال

[[self parentViewController] dismissModalViewControllerAnimated: YES];

أو يمكنك إعداد بروتوكول لوحدة التحكم الجديدة الخاصة بك حتى تتمكن من إخطار وحدة التحكم الأصلية الخاصة بك من الإكمال وإرسال قيمة مرة أخرى ، إذا كنت تريد العودة إلى NSString ، فقد تستخدمها

@protocol MyViewControllerDelegate
- (void)myViewControllerDelegate: (MyViewController*)myViewController didFinishWithValue: (NSString*)theString;
@end

سيكون لدى MyViewController عقار مندوب

@interface MyViewController
{
    id<MyViewControllerDelegate> delegate;
}
@property(nonatomic,assign) id<MyViewControllerDelegate> delegate;
@end

إذا كنت تستخدم طريقة البروتوكول ، فستقوم وحدة تحكم العرض الأصلية بتبني هذا البروتوكول وسوف ترفض عرض الوسائط نفسه عندما يتلقى هذه الرسالة.

آمل أن يساعد ذلك ، فقد يبدو الأمر معقدًا بعض الشيء في البداية ، لكنه يجعل جمع البيانات سهلاً للغاية.

نصائح أخرى

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

يمكنك أيضًا إدراج خلية مع uitextview و "TAP to edit" العنصر النائب ، ثم على عاتق TextView ، قم بإزالة TextView وعرض السلسلة. سيحتاج مزيد من التحرير إلى التنقل أو القيام بشيء آخر

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