كيف يمكنني حساب عرض التلقي الأمثل؟
سؤال
أنا أستخدم الملاحة مع مخصص UIView
Subclass التي تصبح العنوان الخاص بي. أريد أن التأكد من أن هذا هو العرض الكامل المتاح.
منطقيا من بلدي UIViewController
'س viewWillAppear:
, ، هذا ينبغي أن يكون:
CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;
(ليس لدي عنصر صحيح هنا.)
هذا من شأنه أن تتكيف، إذن، لمختلف عرض ممكن من leftBarButtonItem
. وبعد الصيد هو ذلك leftBarButtonItem
يكون nil
, ، وبالتالي leftBarButtonItem.width
هو دائما 0 (حسنا، في محاكاة على أي حال).
backBarButtonItem
هو أيضا لا شيء.
ماذا يجب أن أفعل بدلا من ذلك؟
المحلول
اخترق هذا من خلال القيام بما يلي:
int vcStackSize = [[self.navigationController viewControllers] count];
WEViewController* previousController = [[self.navigationController viewControllers] objectAtIndex:vcStackSize - 2];
NSString* previousTitle = [previousController title];
UIFont* font = [UIFont boldSystemFontOfSize:12];
lw = [previousTitle sizeWithFont:font].width + 26;
سيئة لكنها تعمل
لا تنتمي إلى StackOverflow