سؤال

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

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

controller.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height - kTabBarHeight);

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

ولقد حاولت أيضا إضافة وحدات التحكم عرض لأسفل (أسفل شريط علامات التبويب) باستخدام:

[self.view insertSubview:controller.view atIndex:0];

ولكن عندما أفعل ذلك، شريط التبويب، بل هو ظاهر فوق أي آراء مشروط! وهو غريب. أعتقد أن هناك شيء أنا لا تفهم ذلك وسأكون ممتنا إذا كان شخص ما يمكن أن يفسر ما أنا في عداد المفقودين!

شكرا،

ومايك

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

المحلول 3

ولقد تمكنت من إيجاد طريقة أفضل للتحكم في مظهر من شريط التبويب ببساطة عن طريق إدخال subviews إلى الجزء العلوي من شريط التبويب تحكم علامة التبويب. انها عملت علاج!

نصائح أخرى

وحاول وضع

controller.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height - kTabBarHeight); 

وفي طريقة viewWillAppear وحدة التحكم

وجرب هذا. أعتقد أنك تريد التحكم عرض ديناميكية داخل تحكم شريط التبويب.

-(void)applicationDidFinishLaunching:(UIApplication *)application {

// Add the tab bar controller's current view as a subview of the window
tabBarController.delegate=self;
tabBarController=[[UITabBarController alloc] init];

mainDashBoard=[[DashBoard alloc] initWithNibName:@"DashBoard" bundle:nil];
mainSearchView=[[SearchView alloc] initWithNibName:@"SearchView" bundle:nil];
mainMoreView=[[MoreView alloc] initWithNibName:@"MoreView" bundle:nil];

UINavigationController *nvCtr0=[[[UINavigationController alloc] init] autorelease];
UINavigationController *nvCtr1=[[[UINavigationController alloc] initWithRootViewController:mainDashBoard] autorelease];
UINavigationController *nvCtr2=[[[UINavigationController alloc] initWithRootViewController:mainSearchView] autorelease];
UINavigationController *nvCtr3=[[[UINavigationController alloc] initWithRootViewController:mainMoreView] autorelease];
UINavigationController *nvCtr4=[[[UINavigationController alloc] init] autorelease];//[[[UINavigationController alloc] initWithRootViewController:nil] autorelease];

tabBarController.viewControllers=[NSArray arrayWithObjects:nvCtr0,nvCtr1,nvCtr2,nvCtr3,nvCtr4,nil];

nvCtr0.tabBarItem.enabled=NO;
nvCtr4.tabBarItem.enabled=NO;

[window tabBarController.view];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top