2015-09-17 25 views
11

Dopo l'aggiornamento di Xcode 7, alcuni dei nomi dei miei viewcontrollers sono stati modificati in Delegate Scene, cosa fare a riguardo? Grazie! enter image description hereXcode 7 storyboard delegate origini dati origine

Modifica del titolo non aiuta enter image description here

+0

dato il fatto che nessuno ha fatto risposta presumo che questo è un problema piuttosto raro - se non unico. C'è qualche possibilità che tu possa fornire lo storyboard per l'esame? –

+1

@HelgeBecker Beh, sembra che almeno 5 persone abbiano questo problema entro poche settimane, quindi potrebbe esserci qualcosa. Temo di non poter condividere il nostro storyboard. –

+0

@ Ted: Roger, non è un problema isolato. Mi dispiace di sentire. Dove riesci a riprodurre il problema in un nuovo progetto che non contiene dati critici? –

risposta

10

provare a rinominare il controller per quello che vuoi che sia:

Fase 1 Selezionare il "controllore", il nome di "delegato "nel tuo screenshot.

enter image description here

Fase 2 cliccare nuovamente su "Delega", o premere [Invio] per accedere alla modalità di ridenominazione.

enter image description here

Fase 3 rinominarlo in qualcosa di significativo. nuovo

enter image description here

Fase 4 Deseleziona o premere [Invio] per salvare le modifiche. Il nome della scena verrà aggiornato per corrispondere al nome specificato.

enter image description here

+0

Grazie - Non so perché non ci ho pensato. Ma mi piacerebbe ancora capire quale sia il problema nel file storyboard fornito. –

+2

Non funziona sempre - il nome viene cambiato dopo averlo rinominato! –

+4

Il rinominare mappa in Documento: Etichetta in Identity Inspector - rinominalo lì, funzionerà sempre. –

1

Non ho una risposta diretta, ma un posto dove guardare. Purtroppo supera lo spazio per il commento, quindi devo metterlo qui. Scusate.

Se si seleziona lo storyboard in Esplora progetto, è possibile aprirne il codice sorgente. Gli storyboard sono solo file XML. Come appare il viewcontroller? Confrontalo con un riferimento, ad esempio uno appena creato. Forse puoi condividere la parte xml del viewcontroller? Esempio con uno (out of the box) controller della vista:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8191" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r"> 
    <dependencies> 
     <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/> 
    </dependencies> 
    <scenes> 
     <!--View Controller--> 
     <scene sceneID="tne-QT-ifu"> 
      <objects> 
       <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="eee" customModuleProvider="target" sceneMemberID="viewController"> 
        <layoutGuides> 
         <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> 
         <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> 
        </layoutGuides> 
        <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> 
         <rect key="frame" x="0.0" y="0.0" width="600" height="600"/> 
         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 
         <animations/> 
         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> 
        </view> 
       </viewController> 
       <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> 
      </objects> 
     </scene> 
    </scenes> 
</document> 
1

controllare la proprietà titolo del tuo controller della vista, il nome del controller della vista proviene da entrambi la proprietà del titolo o della Classe. (Titolo che ha la precedenza)

Screenshot

Inoltre è puoi rinominare il controller manualmente se lo desideri come suggerito da Steve

2

Aggiungendo a @Steve Wilford Risposta:

Nella story board di Xcode 7, è presente una limitazione sulla lunghezza del nome del controller della vista da visualizzare nel riquadro sinistro di 15 caratteri. Tutti i nomi con più di 15 caratteri, saranno cambiati in nomi strani, come "Delegate Scene" o "Data Source Scene".

0

Ecco un progetto in cui è possibile vedere chiaramente che si tratta di un bug di Interface Builder. L'ho segnalato ma nessuna risposta. L'ID è 22972580.

DelegateBug.zip

+0

Il bug esiste ancora. Ho implementato una giostra. Quando ho impostato l'origine dati e delegato il mio UIVIew al controller della vista ('cerchio giallo'), ha cambiato il nome della scena in 'Origine dati'. Ho provato a rinominare la scena, il titolo, l'ID dello storyboard, ecc., Niente aiuta. Ho anche provato a cambiarlo al codice sorgente del tabellone. –

+0

In realtà, @ bunty lo ha corretto nella sua risposta qui sotto. Mentre all'inizio avevo un nome di scena lungo (che veniva visualizzato correttamente come nome della scena), l'aggiunta del delegato di UIVIew e delle origini dati al ViewController cambiava il nome in Data Source per ogni scena rilevante. Ma accorciare il nome ora sembra fare il trucco. –