2013-11-01 3 views
0

Xamaring 및 iOS를 처음 사용했지만 UIBarButtonSystemItem.Add를 누르면 SQLite 데이터베이스에 레코드가 추가되고 사용자에게 경고 한 다음 새로 고침하는보기를 만들려고합니다. 스크린으로서의 스크린은 SQLite의 테이블에있는 각각의 레코드를위한 버튼을 그립니다. 데이터가 추가되고 경고가 표시됩니다 현재xamarin에서보기 새로 고침 iOS

this.NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(UIBarButtonSystemItem.Add, (sender,args) => { 
    conn.Query<Job>("INSERT INTO Job (Job) VALUES(0)"); 
    UIAlertView alSQL = new UIAlertView("Jobs","New job added",null,"ok",null);AllJobsScreen(), true); 
    alSQL.Show(); 
}), true); 

,하지만 난 데이터베이스에서이 새로운 기록을 반영하기 위해 화면을 얻을 어쨌든 확실하지 않다 :

현재 추가 버튼 코드는 새 단추를 추가하십시오.

화면을 새로 고침 할 때 온라인에서 보았으므로 아무 것도 찾을 수 없으므로 도움이 될 것입니다. 또는 내가 잘못된 방향으로 나아가고 있다면 알려 주시기 바랍니다.

화면에 버튼을 쓰고 있지만 이상적으로는 아무 것도보기로 새로 고침 할 수 있어야합니다. 현재의 버튼은 다음과 SQLite는 쿼리에서 루프에서 기록됩니다

UIButton btnTest = new UIButton (UIButtonType.System); 
btnTest.Frame = new RectangleF(iTopLeftx, iTopLefty, 300, 30); 
btnTest.SetTitle("J00000" + s.mJobID.ToString(),UIControlState.Normal); 
btnTest.BackgroundColor = UIColor.Clear; 
this.View.Add (btnTest); 
+1

당신은을 표시 할 수있는 TableView를 사용해야합니다 기록이 맞지? 데이터를 다시로드하면됩니다. –

+0

화면에 표시되는 내용을 설정하는 코드를 게시 할 수 있습니까? 만약 당신이'UITableView'를 사용하지 않는다면,이 코드를 함수에 넣고 필요할 때 호출해야합니다. – jonathanpeppers

+0

버튼을 작성하는 코드가 추가되었습니다. 세부 사항이 충분하지 않으면 알려주십시오. 나는 거기에 너무 많이 넣고 싶지 않았다. 나는 이상적으로 사용자가 그것을 떠나는 순간 뷰를 처분하는 방법이 필요하다. 그래서 뷰를 다시 탐색 할 때 뷰를 처음부터 다시 만들도록한다. 감사. – Higgsinator

답변

0

새로 만든 UIButton의의 TitleColor, BorderColorBorderWidth을 변경해보십시오. 어쩌면 단추가보기에 표시되지만 볼 수는 없습니다.

UIButton btnTest = UIButton.FromType(UIButtonType.Custom); 
btnTest.Frame = new RectangleF(iTopLeftx, iTopLefty, 300, 30); 
btnTest.SetTitle("J00000" + s.mJobID.ToString(), UIControlState.Normal); 
btnTest.SetTitleColor(UIColor.Black, UIControlState.Normal); 
btnTest.Layer.BorderColor = UIColor.Black.CGColor; 
btnTest.Layer.BorderWidth = 1; 
btnTest.BackgroundColor = UIColor.Clear; 
this.View.Add(btnTest); 

편집은 그 다음 문제는 당신이 이전에 제거 UIButton의 추가하지 않은 것 같다. 목록 또는 배열에 UIButton 컬렉션을 보유하려고하십시오.

List<UIButton> buttonList;

private void ClearView() 
{ 
    foreach (UIButton btn in buttonList) 
    { 
     btn.RemoveFromSuperview(); 
    } 

    buttonList.Clear(); 
} 

private void InitializeSubviews() 
{ 
    foreach (UIButton btn in buttonList) 
    { 
     this.View.AddSubview(btn); 
    } 
} 

을 그리고 당신의보기 새로 고침 :

private void PopulateSubviews() 
{ 
    for (int i=0; i<count; i++) 
    { 
     UIButton btnTest = UIButton.FromType(UIButtonType.Custom); 
     // previous code withoud this.View.Add(...); 
     ... 
     buttonList.Add(btnTest); 
    } 
} 

그리고이 두 가지 방법 :

그런 다음 buttonList를 채울

private void ReloadSubviews() 
{ 
    ClearView(); 
    PopulateSubviews(); 
    InitializeSubviews(); 
} 
+0

답변 해 주셔서 감사합니다. 그들은 화면에 잘 나타납니다,하지만, 데이터를 변경하면 페이지를 탐색하고, 다시 페이지로, 여전히 동일한 버튼으로 동일한 화면을 보여 주며, 다시 볼 때 표시되는 것을 업데이트하는 방법을 찾을 수 없습니다 - 스크린에 들어갔다. – Higgsinator