Отключить кнопку в MT.Dialog и изменить изображение

Может ли кто-нибудь помочь, я хочу изменить свое изображение (кнопку), когда я нажимаю кнопку Изображение, я открываю MT.Dialog, а затем вхожу в систему, и когда я вхожу в систему, я хочу, чтобы кнопка изменилась, как мне это сделать, я нашел код , но это не работает в MT.Dialog Вот как я это делаю.

    cmdLogin.TouchUpInside += delegate { 
      cmdLogin.SetImage(UIImage.FromFile("Images/Logout.png"), UIControlState.Normal);
    };

и для скрытой вещи, которую я пробовал (но не работает)

    if(cmdLogin.Hidden == True)
    {
       cmdLogout.Enabled;
    }else{
       cmdLogout.Hidden;
    }

но это не работает в MT.Dialog, конечно, потому что я ничего не делаю со своим строковым элементом (мой строковый элемент получил имя login, и если кто-то получил ссылку на хорошую систему входа в систему с база данных, которая была бы очень полезна.

и, конечно же, вот мой код MT.Dialog

    cmdLogin.TouchUpInside += delegate {

            _window.RootViewController = new DialogViewController(new RootElement("Login") {

                    new Section ("B.V. Electronic"){
                    (password = new EntryElement ("Password", "", "", true))
                },
                new Section () {
                    (login = new StringElement ("Login", delegate {
                        if(password.Matches("1234")){

                            GoBackToView();

                        }else{
                            new UIAlertView("Wrong code", "It's the wrong code", null, "Ok", null).Show();

                        }
                    }))
                },
                new Section (){
                    new StringElement ("Cancel", delegate {
                        GoBackToView();
                })
                }


            });
        };

person Lobbe    schedule 11.09.2013    source источник
comment
И может кто-нибудь сказать мне, как я это делаю. У меня есть кнопка, когда я нажимаю кнопку, я хочу сослаться (извините за орфографические ошибки) на другой проект/решение, чтобы он открыл этот проект.   -  person Lobbe    schedule 11.09.2013


Ответы (1)


Я не совсем понимаю, что именно вы хотите сделать. Тем не менее, у меня есть одно предложение для вас, чтобы посмотреть на это:

https://github.com/xamarin/prebuilt-apps/tree/master/FieldService

Это пример приложения, созданного Xamarin, с красивым экраном входа в систему, из которого вы можете попробовать и почерпнуть некоторые идеи. Он не использует Monotouch.Dialog для экрана входа в систему, поэтому, если вы хотите, вы можете посмотреть это:

http://docs.xamarin.com/recipes/ios/content_controls/tables/create_a_login_window_using_monotouch.dialog

Ваш код похож на этот, но похоже, что вы его немного изменили.

Если вы хотите изменить свой Login StringElement, вам нужно изменить его, а затем вызвать Root.Reload(login, UITableViewRowAnimation.Automatic);. Я не думаю, что есть простой способ просто изменить фоновое изображение StringElement. Вам нужно будет создать свой собственный подкласс StringElement и настроить подпрограмму GetCell(). Вы можете обратиться к этому вопросу SO для получения дополнительных идей по этому поводу:

Как я могу создать EntryElement с пользовательским стилем с помощью MonoTouch .диалог?

Надеюсь, это поможет.

person therealjohn    schedule 12.09.2013
comment
Спасибо за ваш ответ, мой экран входа в систему немного отличается, потому что я хочу убедиться, что вы ввели правильный пароль, я не знаю другого способа проверить учетные данные пароля. Также я не хочу менять свой StringElement, у меня есть кнопка входа, и когда я нажимаю кнопку входа (выглядит как изображение), я открываю MT.D, и когда я нажимаю вход, я возвращаюсь к представлению с моей кнопкой входа в систему, и ее нужно изменить на кнопку выхода (с изображением). У меня уже есть кнопка в представлении, все, что ей нужно, это быть видимой при входе в систему, а кнопка входа должна быть скрыта. Я надеюсь, что это имеет смысл. - person Lobbe; 13.09.2013
comment
А еще, это Android, а мне нужна Ios, xamarin говорит, что не может открыть решение, потому что это android, а не Ios :/ - person Lobbe; 18.09.2013
comment
Проект FieldService — это не просто андроид, у него оба проекта в решении. Решение не имеет ничего общего с платформой, только с проектами. Возможно, он не сможет открыть проект Android, и это нормально, потому что он вам не нужен. Вы можете просто удалить это из своего решения, если хотите. - person therealjohn; 18.09.2013
comment
Можете ли вы сказать, как получить NavigationsController внутри моего MT.Dialog, чтобы я мог вернуться, вместо StringElement - person Lobbe; 19.09.2013
comment
Вы помещаете DialogViewController внутрь UINavigationController, а не наоборот. Если у вас есть дополнительные вопросы по этому поводу, задайте их на форумах Xamarin, где у меня есть множество примеров кода, которые помогут вам. - person therealjohn; 20.09.2013