سؤال

في بلدي التطبيق لدي الحفر أسفل نوع واجهة على النحو التالي:
بلدي الجذر الرأي الذي لديه قائمة من البنود على زر "إضافة".
اختيار عنصر يدفع "التفاصيل" عرض على navigationController.
اختيار الزر "إضافة" يدفع "إضافة" عرض.

كيف يمكنني الانتقال بين إضافة عرض تفاصيل المنظر ؟

أنا أفكر في القيام unanimated "البوب" على إضافة عرض ودفع التفاصيل تحكم على, ولكن كيف لي أن الجزء الثاني من الرسوم المتحركة ، حيث عرض التفاصيل إما في الشريحة عموديا أو تتلاشى من إضافة الرأي ؟

شكرا
كيلسو

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

المحلول

على أساس رامين رد, يمكنك أن تجرب هذا الطريق, الذي يستخدم من قبل شركة آبل في العديد من العينات:

MyListViewController.ح

#import "MyAddViewController.h"

@interface MyListViewController : UITableViewController <MyAddViewControllerDelegate> {
}

- (IBAction)add:(id)sender;
@end

MyListViewController.م

// Action for bring up add view controller
- (IBAction)add:(id)sender {
    MyAddViewController *addViewController = [[MyAddViewController alloc] initWithStyle:UITableViewStyleGrouped];
    addViewController.delegate = self;

    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addViewController];
    [self presentModalViewController:navigationController animated:YES];

    [navigationController release];
    [addViewController release];     
}

// MyAddViewController's delegate method, dismiss the add view controller in here
- (void)addViewController:(MyAddViewController *)addViewController didAddData:(MyData *)data{
if (data) {
   MyDetailViewController *detailViewController = [[MyDetailViewController alloc] initWithStyle:UITableViewStylePlain];
   detailViewController.data = data;
   [self.navigationController pushViewController:detailViewController animated:YES];
   [detailViewController release]; 
}
[self dismissModalViewControllerAnimated:YES];
}

MyAddViewController.ح

@protocol MyAddViewControllerDelegate;
@class MyData;

@interface MCCourseAddTableViewController : UITableViewController {
@private
    MyData *data;
    id <MCCourseAddDelegate> delegate;
}

// MyData could be NSManagedObject if you want to use Core Data
@property(nonatomic, retain) MyData *data;
@property(nonatomic, assign) id <MyAddViewControllerDelegate> delegate;

- (void)save;
- (void)cancel;
@end

@protocol MyAddViewControllerDelegate <NSObject>
@optional
- (void)addViewController:(MyAddViewController *)addViewController didAddData:(MyData *)data;;
@end

MyAddViewController.م

- (void)save {
    if (self.delegate != nil) {
        if ([self.delegate conformsToProtocol:@protocol(MyAddViewControllerDelegate)]){
            if ([self.delegate respondsToSelector:@selector(addViewController:didAddData:)]){
                // Send data back to List View, to bring up detail view controller and dismiss add view controller
                [self.delegate addViewController:self didAddData:self.data];
            }
        }
    }
}

- (void)cancel {
    if (self.delegate != nil) {
        if ([self.delegate conformsToProtocol:@protocol(MyAddViewControllerDelegate)]){
            if ([self.delegate respondsToSelector:@selector(addViewController:didAddData:)]){
                // Send nil back to ListView, to dismiss the add view controller only
                [self.delegate addViewController:self didAddData:nil];
            }
        }
    }
}

نصائح أخرى

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

ماركو

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

وهناك طريقة نظيفة لوضع هذا الأمر هو جعل وحدة تحكم مشروط بتنفيذ مندوب التي يتوقع "تم" طريقة البروتوكول ويكون وحدة تحكم الجذر تنفيذه ووضع نفسها على أنها مندوب.

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

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