0

나는 티타늄 모바일에서 간단한 로그인과 메뉴 표시를합니다.tabbox 내부 창 또는 티타늄 모바일보기

..

Login.js

function Login() { 
    var loginView = Titanium.UI.createView({ 
     backgroundColor:'#C4FBFF', 
     layout:'vertical' 
    }); 

    var txtUsername = Titanium.UI.createTextField({ 
     width:'75%', 
     hintText:'Username', 
     borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
    }); 

    var txtPassword = Titanium.UI.createTextField({ 
     width:'75%', 
     hintText:'Password', 
     borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED, 
     passwordMask:true 
    }); 

    var btnLogin = Titanium.UI.createButton({ 
     title:'Login', 
     width:'75%' 
    }); 

    loginView.add(txtUsername); 
    loginView.add(txtPassword); 
    loginView.add(btnLogin); 

    btnLogin.addEventListener('click',function(e){ 
     var alertDialog = Titanium.UI.createAlertDialog({ 
      title: 'Confirmation', 
      message: 'You will be logged in as ' + txtUsername.value + ', continue?', 
      buttonNames: ['Yes','No'] 
     }); 

     alertDialog.addEventListener('click',function(e){ 
      if (e.index === 0){ //Yes Pressed 
       var isAndroid = Ti.Platform.osname === 'android' ? true : false; 
       var MainMenu = isAndroid === true ? require('ui/handheld/android/MainMenu') : require('ui/handheld/MainMenu'); 

       var mainMenuWindow = Titanium.UI.createWindow({ 
        backgroundColor:'#336699', 
        title:'Main Menu', 
        modal:true, 
        navBarHidden: isAndroid === true ? true : false 
       }); 

       var mainMenu = new MainMenu(mainMenuWindow); 
       mainMenuWindow.add(mainMenu); 

       mainMenuWindow.open(); 

      } 
      else{ // No Pressed 
       makeAlert('Login','Please contact your system administrator'); 
      } 
     }); 

     alertDialog.show(); 
    }); 

    function makeAlert(title, message) { 
     var customAlertDialog = Titanium.UI.createAlertDialog({ 
      title: title, 
      message: message, 
      buttonNames: ['Ok'] 
     }); 
     return customAlertDialog.show(); 
    } 

    return loginView; 
} 

module.exports = Login; 

여기 MainMenu.js는

function MainMenu(_parent){ 
    var mainMenuView = Titanium.UI.createView({ 
     backgroundColor:'#C4FBFF', 
     layout:'vertical' 
    }); 

    var btnLeftNavBar = Titanium.UI.createButton({ 
     title:'Logout' 
    }); 

    var txtTest = Titanium.UI.createTextField({ 
     hintText:'iPhone', 
     width:'75%', 
     borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
    }); 

    _parent.setLeftNavButton(btnLeftNavBar); 
    mainMenuView.add(txtTest); 

    btnLeftNavBar.addEventListener('click',function(e){ 
     _parent.close(); 
    }); 

    return mainMenuView; 
} 

module.exports = MainMenu; 

MainMenu.js은 가까운 윈도우 메뉴 바에서 하나 개의 버튼을 표시입니다 : 여기에 로그인 내 코드는

주요 문제는 MainMenu.js에 tabGroup을 넣어서 일부 메뉴를 선택할 수있게하려는 것입니다.

창 안에 tabGroup을 넣을 수 있습니까? 어떤 제안, 그래서 메인 애플 리케이션 구조를 변경하지 않고 MainMenu.js에 tabGroup을 넣을 수 있습니까?

많은 감사합니다 ..

답변

5

다른 요소의 하위 항목으로 탭 그룹을 추가 할 수 없습니다. 참조 : Top Level Containers @ add method of tabgroup

텍스트 :

최상위 컨테이너

다른 뷰의 자식으로 추가 의도되지 않은 특정 최상위 컨테이너가 있습니다. 이러한 최상위 컨테이너 에는 Window, SplitWindow 및 TabGroup이 포함됩니다. 보기의 다른 유형은 화면에 표시되기 위해 최상위 컨테이너에 을 추가해야합니다.

+0

오류가 발생하여이 솔루션을 사용하면 2 개의 Windows가 있음을 알 수있었습니다. 건배! –