سؤال

في الواقع العنوان يحتوي على سؤالي. لدي UisesuteDcontrol، وتحتاج إلى إلغاء تحديد علامة تبويب محددة حاليا. حاولت:

[menu setSelectedSegmentIndex:-1];

القائمة كونها Uboutlet ل UISESICTICTEDCONTROL ولكن هذا يعطيني استثناء. أي شخص لديه بعض الفكرة؟ شكرا بطرس

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

المحلول

أود أن أفترض أنك اتصلت [myArray length] بدلا من السليم [myArray count] في مكان ما في التعليمات البرمجية الخاصة بك. يستخدم NSARRAY طريقة العد، وليس طول عدد العناصر التي يحتوي عليها.

نصائح أخرى

الطريقة الصحيحة للقيام بذلك هي:

[menu setSelectedSegmentIndex:UISegmentedControlNoSegment];

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

menu.momentary = YES;

وضع القطاعينترول إلى .momentary = YES التغييرات في الطريقة التي يمكن للمستخدم التفاعل مع segrictedcontrol. إذا كنت ترغب في الحصول على أي شيء تم اختياره في البداية عندما يتم تحميل الصفحة ولكن لديك SymentedControl تتصرف بنفس الشيء بعد إجراء عملية اختيار من قبل المستخدم، فأنت تريد شيئا أكثر مثل هذا:

SWIFT 4 الحل:

 @IBOutlet weak var segmentedControl: UISegmentedControl!

 self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment

يمكنك الآن القيام بذلك في XCode 6 في منشئ الواجهة:

Deselect the 'Selected' option under segmented control behaviour in attributes inspector.

حل SWIFT: @IBOutlet weak var mySegmentedControl: UISegmentedControl! و mySegmentedControl.selectedSegmentIndex = -1.

SWIFT 4.

@IBOutlet weak var segmentControl: UISegmentedControl! {
    didSet {
        segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top