我正將舊應用程序從.xib-s遷移到.storyboard-s。這些.xib文件有很多IBOutlet連接,並且複製&粘貼視圖並重新創建它們非常耗時。我想知道是否有辦法做到這一點無縫。任何人都知道解決這個問題?從.xib複製到.storyboard並保留IBOutlet連接
0
A
回答
0
是的,有一種方法。
確保故事板視圖控制器場景具有爲視圖控制器設置的正確類。
右鍵單擊xib文件,然後選擇打開爲 - >源代碼。
找到
<subviews> ... </subviews>
對標籤,並複製該部分。以同樣的方式打開故事板(打開爲 - >源代碼)並在xml中找到相應的視圖控制器(用xml註釋標記,例如
<!--MyViewController>
),然後從xib複製和粘貼xml子視圖,裏面的視圖控制器<view> ... </view>
標籤。例如<viewController id="vXZ-lx-hvc" customClass="TwoViewController" sceneMemberID="viewController"> <layoutGuides> <viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/> <viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="kh9-bI-dsS"> <rect key="frame" x="0.0" y="0.0" width="320" height="568"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fLe-1C-hTu"> <rect key="frame" x="116" y="244" width="46" height="30"/> <state key="normal" title="Button"> <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> </state> </button> </subviews> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> </view> </viewController>
重複與
<connections> ... </connections>
以上步驟,在所有IBOutlets複製。需要注意的是連接去<view> .. </view>
標籤的下面,但裏面的<viewController> ... </viewController>
<viewController id="vXZ-lx-hvc" customClass="TwoViewController" sceneMemberID="viewController"> <layoutGuides> <viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/> <viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="kh9-bI-dsS"> <rect key="frame" x="0.0" y="0.0" width="320" height="568"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fLe-1C-hTu"> <rect key="frame" x="116" y="244" width="46" height="30"/> <state key="normal" title="Button"> <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> </state> <connections> <action selector="samButtonTap:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="1sQ-0S-S8z"/> </connections> </button> </subviews> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> </view> <connections> <outlet property="samButton" destination="fLe-1C-hTu" id="8GK-Nn-Loy"/> </connections> </viewController>
你會從第二片斷IBActions與觀點,其中作爲IBOutlets中表示在一起後子視圖有代表注意到已被宣佈。
根據xib文件的複雜程度,您可能需要做更多的工作。如果您決定重新創建一些xib組件,而不是將它們複製到ID中,則會發生更改,因此請注意這一點。一旦完成,不要忘記從項目中刪除你的xib文件。
+1
我想過這個,但希望有另一種方式。現在誰想要編寫一個能夠自動完成的應用:) – 2015-03-06 14:25:35
相關問題
- 1. IBOutlet未連接到Storyboard
- 2. 無法將IBOutlet連接到XIB文件
- 3. 複製並粘貼我的xib文件並保留參考
- 4. 我如何從XIB到Storyboard?
- 5. 從Storyboard降級到XIB
- 6. 無法將連接器從IBOutlet鏈接到視圖控制器
- 7. 無法從TabView連接到IBOutlet
- 8. Segue從XIB Viewcontroller中的segmentcontrol到Storyboard Viewcontroller
- 9. 從Xib回到StoryBoard中的不同ViewController
- 10. 從ViewController(storyboard)調用NavigationController(xib)
- 11. 將UIScrollView連接到IBOutlet
- 12. 將.xib加載到Storyboard中
- 13. IBOutlet連接xcode5
- 14. Xib和Storyboard
- 15. xib沒有連接到控制器?
- 16. Xcode 4.3:IBOutlet的重複連接
- 17. 保留計數並複製二傳手?
- 18. 複製shell腳本並保留權限
- 19. 複製文件並保留副本
- 20. 客觀C複製並保留
- 21. 複製HTML並保留事件
- 22. 如何將Xcode Storyboard的「Simulated Metrics」工具欄連接到實際的IBOutlet UIToolbar?
- 23. 創建IBOutlet並與代碼連接
- 24. 無法連接IBOutlet
- 25. 連接問題IBOutlet
- 26. SequelizeConnectionError:FATAL:其餘連接槽保留給非複製超級用戶連接
- 27. Segue from Storyboard to XIB
- 28. * .storyboard和標準* .xib
- 29. 使用storyboard代替iOS中的.xib文件用於Facebook連接
- 30. 無法連接UITableViewCell定製單元IBOutlet
我認爲只要您將ViewController類更改爲您的實際控制器類,Xcode就會自動執行此操作。你不能做任何事情,但如果xcode不會自動完成的話。 – iphonic 2014-10-29 10:23:09