簡體   English   中英

在iOS中編寫通用應用程序

[英]Programming a Universal App in iOS

當我編寫通用應用程序時,假設我有這樣的IBAction:

(IBAction)magicCode:(id)sender {

    textField1.text = "TEST";

}

我是否需要為每個視圖(iPad和iPhone)創建新的IBAction。 我不能在頭文件中使用textField1兩次,所以我只是想知道其他人是如何做到這一點的。 我是否需要在iPhone應用程序中放置一個文本字段,其名稱與iPad應用程序中的名稱不同? 或者其他人是否有其他方式這樣做?

我是否需要為每個視圖(iPad和iPhone)創建新的IBAction。

首先,操作通常包含在視圖控制器中,而不是視圖中。 我認為這可能就是你的意思,但我指出了不同之處,因為我看到很多人對這一點感到困惑。

當您創建一個通用應用程序,即一個應用程序,使其UI適應其運行的設備(iPad或iPhone / iPod Touch)時,一個常見的策略是提供不同的視圖布局,以充分利用可用的屏幕大小,但要使用相同的視圖控制器。 因此,例如,假設您有一個帶有主/詳細界面的應用程序。 在小型設備上,您首先會顯示界面的主要部分,當用戶選擇某些內容時,您將顯示界面的詳細信息部分。 在iPad上,屏幕較大,您可以在分屏視圖中同時顯示主界面和詳細界面。 比較兩者,視圖可能不同,並且視圖控制器的呈現方式不同,但視圖控制器本身應保持不變。 這是一件好事,因為創建應用程序的大部分工作都是創建視圖控制器。

如果您的應用程序與我所描述的類似(或者如果您可以使其類似),那么不,您不需要為iPad和iPhone單獨執行操作,因為在這兩種情況下您將使用相同的視圖控制器。 但是,有時候,兩個不同設備上的應用程序行為不同,以至於擁有特定於iPad和iPhone的視圖控制器是有意義的。 您可能仍然可以通過從包含操作的公共父類派生每個操作來使用相同的操作。 如果沒有,您需要讓每個類實現自己的操作。

不,你可以在UIViewController中使用相同的IBAction和IBOutlet來處理兩個不同Nib中的文本字段(一個用於iPhone,一個用於iPad)。 這就是MVC架構中View Controller和Views之間的分離點。

只需在兩個Nib中使用與文件所有者相同的UIViewController,並進行所有適當的IBOutlet和IBAction連接,一切都會正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM