سؤال

أنا أستخدم الملاحة مع مخصص UIView Subclass التي تصبح العنوان الخاص بي. أريد أن التأكد من أن هذا هو العرض الكامل المتاح.

منطقيا من بلدي UIViewControllerviewWillAppear:, ، هذا ينبغي أن يكون:

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;

سيئة لكنها تعمل

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