سؤال

ولدي التطبيق navigationController.

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

NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"ProfileDetailController" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];

لا شيء يحدث. طبعا هذا يعمل:

self.view = nextController.view;

وأريد أن أكون قادرة على دفع إلى هذا فرعية داخل بلدي tabbar وتغيير أزرار navigationbars. هل هذا ممكن؟

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

المحلول

وهذا يبدو وكأنه كنت يدفع UITabBarController الصعود إلى UINavigationController؟ من <لأ href = "http://developer.apple.com/IPhone/library/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/occ/instm/UINavigationController/pushViewController:animated:" يختلط = "noreferrer نوفولو"> أبل الوثائق ، لا يمكنك دفع تحكم شريط التبويب على وحدة تحكم الملاحة.

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

نصائح أخرى

وأنا أتفق مع اليكس - على TabBarController داخل وحدة تحكم الملاحة لا يبدو وكأنه نمط UI لطيفة

.

وعلى أي حال، للإجابة على سؤالك: هل حاولت الوصول إلى وحدة تحكم الملاحة عبر وحدة تحكم شريط التبويب

self.tabBarController.navigationController

ولست متأكدا إذا كان هذا يعمل، ولكن هل يمكن أن يعطي هو محاولة.

وأعتقد أنني وجدت حلا سهلا.

في صفك حيث تريد دفع الرأي، إعلان UINavigationController المحلية باعتبارها propterty:

@interface userMenu : UIViewController  {
UINavigationController *navigationController;
}
@property (nonatomic, retain) UINavigationController *navigationController;

وحفظ لتجميع ذلك.

في صفك لtabBarController:

NSArray *viewControllersArray = [self.tabBarController viewControllers];

userMenu *childUserMenu = (userMenu*) [viewControllersArray objectAtIndex:0];
childUserMenu.navigationController = self.navigationController;

وبعد ذلك يمكنك القيام به [self.navigationController pushViewController:nextController animated:YES];

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