2009-07-08 25 views
7

m mới đến mục tiêu-c, tôi đã thực hiện một ứng dụng trang đăng nhập, trong đó tôi đã sử dụng UISwitch để nhớ chi tiết đăng nhập d nếu chuyển đổi đang ở chế độ bật. tôi đã làm với để nhớ các chi tiết đăng nhập nhưng vấn đề là làm thế nào để sử dụng bật/tắt điều kiện chuyển đổi. Thanx trướcBật/tắt một số

Trả lời

7

Bạn sẽ thêm câu lệnh có điều kiện vào một nơi nào đó trong mã của bạn tùy thuộc vào thuộc tính on của nút chuyển. Ví dụ: giả sử bạn nhớ chi tiết đăng nhập trong một phương thức có tên là rememberLoginDetails. Những gì bạn sẽ làm là, khi một số hành động được kích hoạt (người dùng rời khỏi trang đăng nhập, ví dụ):

if([yourSwitch isOn]) { 
    [self rememberLoginDetails]; 
} else { 
    // Do nothing - switch is not on. 
}

Phương pháp quan trọng ở đây là phương pháp isOn cho UISwitch yourSwitch. isOn là bộ thu cho thuộc tính on của chuyển đổi, là thuộc tính BOOL có chứa YES nếu nút gạt được bật và NO nếu nó không được bật.

Để biết thêm thông tin, bạn có thể xem UISwitch class reference, cụ thể là part about isOn.

+0

hi tim, tôi đã sử dụng mã của bạn .. nhưng vấn đề d vẫn giữ nguyên. nó cũng nhớ chi tiết d trong điều kiện tắt. –

+0

Trong trường hợp đó, điều đó sẽ hữu ích nếu bạn có thể chỉnh sửa câu hỏi ban đầu của mình để bao gồm mã bạn đang sử dụng. – Tim

+0

@Harita: Tôi đã có cùng một vấn đề .. Tôi đã thử sử dụng một == TRUE sau đó và nó vẫn không hoạt động. Sau đó, tôi đã đi vào xây dựng giao diện, kết nối chuyển sang IBOutlet var của tôi, và nó đã làm việc:] – abelito

0

Tôi tin rằng mã cần phải được điều này:

if([yourSwitch isOn] == YES) { 
    [self rememberLoginDetails]; 
} else { 
    // Do nothing - switch is not on. 
} 
+1

Không, không. Nếu giá trị của trả về là BOOL, thì bạn không cần sử dụng toán tử so sánh, vì toán tử "if" hoạt động trên BOOL (nếu (TRUE) thực hiện các công cụ; khác làm công cụ khác;). Vì vậy, miễn là [yourSwitch isOn] trả về YES (hoặc NO), "if" sẽ đi ngang một cách chính xác. Mã này ở đây thực sự phải thực hiện nhiều cuộc gọi hơn, làm cho nó chậm hơn (chỉ bằng một vài millisec, nhưng vẫn còn). – ColdLogic

-1

Đây là một giải pháp cho câu hỏi đó.

if (switchValue.on == YES) 
{ 
    // Code... 
} 
else 
{ 
    // Other code... 
} 
17

Giải pháp dễ nhất của tất cả :)

if (switchValue.on){ 
    //Remember Login Details 
} 
else{ 
    //Code something else 
} 
+0

Tôi làm cách nào để có thể thêm giá trị vào công tắc? –

-1

tôi đã có cùng một vấn đề, tôi đã có tên của UISwitch = Selected

tôi thay đổi nó để tên khác và nó làm việc.

3

nếu bạn muốn ghi nhớ chi tiết đăng nhập ngay khi người dùng BẬT công tắc, bạn có thể thực hiện bằng cách tạo Hành động.

- (IBAction)yourSwitch:(id)sender { 
    if([sender isOn]){ 
     //do your stuff here 
    }else{ 
    } 
} 
0

Đây là một giải pháp khác, nếu UISwitch bạn đang ở trong một tableView

1 thêm mã này trong "tableView: cellForRowAtIndexPath:" Phương pháp

[switchControl addTarget:self action:@selector(switchChanged:) forControlEvents:UIControlEventValueChanged]; 

2 thêm phương pháp này

- (void) switchChanged:(id)sender { 
    UISwitch *switchControl = sender; 
    NSLog(@"The switch is %@", switchControl.on ? @"ON" : @"OFF"); 
} 
Các vấn đề liên quan